web-dev-qa-db-fra.com

aws s3 remplacer le fichier atomiquement

Environnement

  • J'ai copié un fichier, ./barname.bin, à s3, en utilisant la commande aws s3 cp ./barname.bin s3://fooname/barname.bin

  • J'ai un fichier différent, ./barname.1.bin que je veux télécharger à la place de ce fichier


Comment puis-je télécharger et remplacer (écraser) le fichier à s3://fooname/barname.bin avec ./barname.1.bin?

Buts:

  • Ne modifiez pas l'URL s3 utilisée pour accéder au fichier (le nouveau fichier devrait également être disponible sur s3://fooname/barname.bin).
  • zéro/minimum "temps d'arrêt"/indisponibilité de la liaison s3.
23
ThorSummoner

Si je comprends bien, vous avez un fichier existant situé à s3://fooname/barname.bin et vous souhaitez le remplacer par un nouveau fichier. Pour remplacer cela, vous devez simplement en télécharger un nouveau par dessus l'ancien: aws s3 cp ./barname.1.bin s3://fooname/barname.bin.

L'ancien fichier sera remplacé. Selon les S3 docs , c'est atomique , bien qu'en raison du modèle de réplication EC2s, les requêtes pour la clé peuvent toujours retourner le ancien fichier depuis un certain temps.

32
waterproof