web-dev-qa-db-fra.com

AWS CLI S3: copie locale du fichier à l'aide du terminal: erreur fatale: une erreur s'est produite (404) lors de l'appel de l'opération HeadObject

J'essaie de copier des fichiers localement à partir du compartiment s3. Je peux obtenir la liste des fichiers sur mon compartiment:

aws s3 ls  s3://myBucket/myDirectory/todaysFiles/

Mais quand j'essaie de copier les fichiers localement:

aws s3 cp s3://myBucket/myDirectory/todaysFiles/ .

Je reçois cette erreur:

fatal error: An error occurred (404) when calling the HeadObject operation: Key "myDirectory/todaysFiles/" does not exist

Mais j'essaie de copier un seul fichier localement:

 aws s3 cp s3://myBucket/myDirectory/todaysFiles/somefile .

Je reçois cette erreur:

 warning: Skipping file s3://myBucket/myDirectory/todaysFiles/somefile. Object is of storage class GLACIER. Unable to perform download operations on GLACIER objects. You must restore the object to be able to the perform operation. See aws s3 download help for additional parameter options to ignore or force these transfers.

L'un de vous sait pourquoi je reçois cette erreur ou comment contourner ces erreurs?

J'apprécie vraiment votre aide

15
user2924482

Pour la première erreur - ajoutez l'indicateur récursif:

aws s3 cp s3://myBucket/myDirectory/todaysFiles/ . --recursive

Cela copiera tous les fichiers du répertoire "todaysFiles" dans le répertoire courant.

Cependant, la deuxième erreur indique que vos fichiers se trouvent dans Glacier. Cela complique un peu les choses car Glacier n'est pas en temps réel - selon ce que vous êtes prêt à payer, cela peut prendre des heures avant que les données ne soient restaurées. Voir la documentation Restoring Objects pour un peu plus d'informations. Vous ne pouvez pas copier depuis S3 tant que l'objet n'est pas restauré de Glacier vers S3.

Notez que si vous faites cela, vous aurez des coûts à la fois de Glacier et de S3.

Soit dit en passant, si ces fichiers sont vraiment des fichiers d'aujourd'hui, il devrait y avoir un temps beaucoup plus long entre le stockage sur S3 et le Push to Glacier. Mais je suppose que les répertoires parents peuvent également avoir un composant lié à la date.

23
stdunbar