web-dev-qa-db-de.com

AWS S3-Synchronisierung --delete, neue Dateien im lokalen Ordner entfernt

aws s3 sync --delete hat einige neue Dateien entfernt.

Zum Beispiel: 

Im Bucket befindet sich eine Datei - S3://my-bucket/images/1.jpg

Dann habe ich eine Datei auf den Server hochgeladen: 2.jpg

Auf dem Server befinden sich 2 Dateien: 1.jpg und 2.jpg

Starten Sie den Sync-Cronjob:

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

Warum fügen wir --delete hinzu - wir möchten die Dateien in S3 löschen und sie mit dem Server synchronisieren.

Wir werden Dateien auf den Server hochladen und die Dateien in S3 entfernen.

Gibt es eine Möglichkeit, das Problem zu beheben?

13
Keith Kong

Standardmäßig löscht der Befehl aws sync ( siehe Dokumentation ) keine Dateien. Es kopiert einfach neue oder geänderte Dateien an das Ziel.

Mit der Option --delete werden Dateien gelöscht, die im Ziel, nicht aber in der Quelle vorhanden sind.

Wenn Ihre Quelle also Folgendes enthält: 1.jpg und 2.jpg und das Ziel 1.jpg, 2.jpg und 3.jpg, dann löscht die Verwendung der --delete-Option 3.jpg vom Ziel.

Ich sehe, dass Sie den Befehl sync in beide Richtungen ausführen. Ihr erster Befehl (der S3 mit einem lokalen Verzeichnis synchronisiert) löscht alle lokalen Dateien, die sich nicht in S3 befinden.

Wenn Sie alle lokalen Dateien nach S3 und alle S3-Dateien in das lokale Verzeichnis kopieren möchten, ohne Dateien zu löschen, verwenden Sie verwenden Sie nicht die --delete-Option .

24
John Rotenstein

--delete Option zum Entfernen von Dateien oder Objekten aus dem Ziel, das nicht in der Quelle vorhanden ist.

0
sarat chandra