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?
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 .
--delete Option zum Entfernen von Dateien oder Objekten aus dem Ziel, das nicht in der Quelle vorhanden ist.