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?
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
.
--delete option pour supprimer des fichiers ou des objets de la cible non présents dans la source.