web-dev-qa-db-fra.com

AWS S3 sync --delete, suppression de nouveaux fichiers en local

aws s3 sync --delete a supprimé quelques nouveaux fichiers.

Par exemple: 

Il y a un fichier dans le compartiment - S3://my-bucket/images/1.jpg

Ensuite, j'ai téléchargé un fichier sur le serveur: 2.jpg

Il y a 2 fichiers sur le serveur: 1.jpg et 2.jpg

Commencez à exécuter le cronjob de synchronisation:

aws s3 sync s3://my-bucket/ ./ --delete
aws s3 sync  ./ s3://my-bucket/ --delete

Pourquoi ajoutons-nous --delete - nous voulons supprimer les fichiers de s3 et les synchroniser avec le serveur.

Nous allons télécharger des fichiers sur le serveur et supprimer les fichiers dans s3.

Y a-t-il un moyen de le réparer?

13
Keith Kong

Par défaut, la commande aws sync ( voir documentation ) ne supprime pas les fichiers. Il copie simplement les fichiers nouveaux ou modifiés vers la destination.

L'utilisation de l'option --delete supprime les fichiers existant dans la destination mais pas dans la source.

Ainsi, si votre source contient: 1.jpg et 2.jpg et que la destination contient 1.jpg, 2.jpg et 3.jpg, alors l’option --delete supprimera 3.jpg de la destination.

Je vois que vous exécutez la commande sync dans les deux sens. Votre première commande (qui synchronise S3 dans un répertoire local) supprimera tous les fichiers locaux qui ne sont pas dans S3.

Si votre objectif est de copier tous les fichiers locaux sur S3 et tous les fichiers S3 dans le répertoire local, sans supprimer aucun fichier, alors n'utilisez pas l'option --delete.

24
John Rotenstein

--delete option pour supprimer des fichiers ou des objets de la cible non présents dans la source.

0
sarat chandra