Ich habe einen großen S3-Bucket mit einer verschachtelten "Ordner" -Struktur, die (unter anderem) statische .json- und .md-Dateien enthält. Diese Dateien werden von S3 text/plain
als die richtigen application/json
und geliefert text/markdown
.
Ich habe die Bucket-Standardeinstellungen aktualisiert, damit neue Uploads den richtigen Inhaltstyp haben.
Was ist der beste Weg, um den "Baum" zu durchlaufen und den Inhaltstyp für Dateien zu aktualisieren, die einer bestimmten Erweiterung entsprechen?
--acl=...
Wenn Sie sich nicht mit Boto / Python oder einer anderen AWS-API die Hände schmutzig machen möchten, sollten Sie am besten
$ aws s3api copy-object
mit dem--content-type
Flag ein Objekt in sich selbst kopieren und den neuen Inhaltstyp festlegen.Hier ist die Dokumentation für s3api.
Es versteht sich von selbst, dass Sie dies zuerst testen sollten, bevor Sie es rekursiv auf Ihrem gesamten Bucket ausführen.
quelle
Nach einigem Graben stellte ich fest, dass das
s3cmd
Tool dies kann. So setzen Sie JSON-Dateien auf application / json:quelle
Wie bereits erwähnt, können Sie das
aws
Tool von Amazon verwenden und mit s3api Objekte auf sich selbst kopieren undmetadata-directive=REPLACE
den Inhaltstyp ändern.Ich setze dies hier ein, weil Sie manchmal Dateinamen iterieren möchten, die in der Datenbank gespeichert sind, und so können Sie dies über cli tun.
quelle