2017-04-10 4 views
1

J'ai deux instances EC2 exécutées dans un VPC personnalisé, l'une exécutant Ubuntu 16.04 et l'autre exécutant Amazon Linux 2017.03. J'ai également affecté un rôle IAM qui permet l'accès en lecture et en écriture à tous les compartiments S3.AWS CLI: la commande de copie échoue lors de la copie d'une instance à l'autre

Cependant, lorsque j'essaie d'exécuter la commande de copie, pour copier un fichier de l'instance dans le compartiment S3, il échoue sur le serveur Ubuntu. La commande je cours sur les deux serveurs est:

aws s3 cp /myfolder/myfile.txt s3://mybucket/backups/ 

Il donne l'erreur suivante sur Ubuntu:

upload failed: ../../myfolder/myfile.txt to s3://mybucket/backups/myfile.txt seek() takes 2 positional arguments but 3 were given 

Tout fonctionne, par exemple, le téléchargement d'un fichier à partir du seau au serveur via la copie commander. Il n'y a aucun problème dans le paramètre VPC et ni le rôle IAM ni le groupe de sécurité, car la même chose s'applique à l'autre serveur exécutant Amazon Linux. PS: L'exécution de la commande de copie avec le commutateur --dryrun ne provoque aucune erreur sur le serveur Ubuntu.

Répondre

2

Il est fort probable que ce soit la version python et le problème de non-concordance de la version cls d'aws. Publier aws Version cli et version python

python -V 
aws --version 

Installez awscli avec pip seulement afin qu'il soit la version python appropriée.

pip install awscli 

Ref: github.com/aws/aws-cli/issues/2403

+0

sorties python3 -V: Python 3.5.2 aws --version sorties: -aws cli/1.11.13 Python/3.5.2 Linux/4.4.0-72-botocore générique/1.4.70 – captainblack

+0

De plus, la copie du compartiment vers l'instance se passe sans aucun problème. L'inverse ne marche pas. Si c'était un problème de python, aucun n'aurait fonctionné. – captainblack

+1

Avez-vous installé awscli avec pip? Les installations personnalisées auront ces problèmes. Ref: https://github.com/aws/aws-cli/issues/2403 – Ravi