Verwenden von AWS CLI Sync Include und Exclude mit Löschoption

Verwenden von AWS CLI Sync Include und Exclude mit Löschoption
aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"

Wenn .DS_Store irgendwie (aus einem vorherigen Backup) in AWS S3 mybigbucket gelangt ist, werden die .DS_Store-Dateien mit dem obigen Befehl nicht vom Ziel gelöscht, selbst wenn ich manuell Folgendes mache:

rm /WordProcessing/DOCUMENTS/.DS_Store

auf dem Dateiserver.

Verstehe ich nicht, wie die AWS S3-Synchronisierung funktioniert? Mir scheint, dass der .DS_Store aus dem Ziel im S3-Bucket gelöscht werden sollte, wenn er aus der Quelle auf dem Dateiserver entfernt wurde.

Wenn ich --exclude entferne und den Befehl erneut ausführe, wird .DS_Store vom Ziel gelöscht, nachdem es vom Dateiserver entfernt wurde. Das scheint nicht richtig zu sein.

Gehe ich falsch vor? Ich möchte den Dateiserver jede Nacht synchronisieren und dafür sorgen, dass die Tausenden von .DS_Store-Dateien nicht in den S3-Bucket übertragen werden.

Antwort1

Es sieht so aus, als hätten Sie Ihre Parameter nach der ersten Synchronisierung geändert.

Wenn Sie dies verwenden, --excludewerden alle Dateien oder Objekte vom Befehl ausgeschlossen, die dem angegebenen Muster entsprechen. Wenn dies der Fall ist, werden alle Aktionen für dieses Muster ignoriert.

Wenn sich die Datei (.DS_Store) bereits im S3-Bucket befindet und die --excludeOption damit übereinstimmt, wird sie ignoriert. Unabhängig davon, ob sie geändert wurde oder aus der Datenquelle verschwunden ist.

Du kannst tun:

  1. Verwenden Sie --exclude bei der ersten und allen nachfolgenden Synchronisierungen (dadurch wird die Datei von Anfang an von S3 ferngehalten).
  2. Löschen Sie zuerst die Datei vom lokalen Host, synchronisieren Sie sie und fügen Sie dann den Ausschluss ein (dadurch wird die Datei entfernt, wenn sie sich in S3 befindet, und dann wird verhindert, dass sie hinzugefügt wird).
  3. Setzen Sie --exclude ein und löschen Sie die Datei manuell aus S3 (dadurch wird verhindert, dass die Datei erneut zu S3 hinzugefügt wird).

Referenz

AWS CLI – Synchronisierung

verwandte Informationen