Réponses:
Selon la documentation Amazon S3:
Une fois supprimé, il n'existe aucune méthode pour restaurer ou restaurer un objet.
Si vous avez activé le contrôle de version, oui, vous pouvez! Sur un compartiment versionné, une action de suppression sur un fichier ne le supprime pas vraiment mais ajoute une version avec un "marqueur de suppression". Vous pouvez supprimer le marqueur de suppression avec l'AWS CLI:
aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker
Vous pouvez obtenir tous les fichiers dans le compartiment avec
aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt
Si vous souhaitez restaurer tous les fichiers du compartiment, vous pouvez essayer:
echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api list-object-versions --bucket yourbucket-name | grep -E "^DELETEMARKERS" | awk '{FS = "[\t]+"; print "aws s3api delete-object --bucket yourbucket-name --key \42"$3"\42 --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;
--output=text
si vous voulez qu'il fonctionne. Il suppose que vous générez votre commande AWS via un fichier .txt et non un fichier .JSON.
Je viens de mettre à jour cette question car je cherchais la réponse:
Vous pouvez maintenant ajouter VERSIONING aux compartiments S3. Cela obligera S3 à conserver les versions d'un objet même après la suppression. Documentation complète: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html
Vous pouvez désormais répertorier les versions d'objet à l'aide de la console AWS: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html
Si vous disposez des autorisations appropriées, vous pouvez supprimer le marqueur de suppression (la dernière version d'un objet supprimé) et le résultat serait que l'objet est à nouveau disponible.