Um Metadaten wie die Cache-Steuerung für ein Objekt in S3 anzupassen, ohne es erneut hochladen zu müssen und ohne Tools von Drittanbietern verwenden zu müssen, können Sie mit der AWS-CLI Folgendes tun. Es kopiert das Objekt in sich selbst und überschreibt die Metadaten mit den von Ihnen gewählten Einstellungen:
aws s3api copy-object --copy-source <bucket-name>/<file> --bucket <bucket-name> --key <file> --metadata-directive REPLACE --cache-control "max-age=3600"
Verarbeiten Sie diesen Befehl in einer Suche, um ihn für einen vorhandenen Satz von Dateien auszuführen, der bereits im Bucket vorhanden ist, wie Sie bereits erwähnt haben:
find . -type f -exec aws s3api copy-object --copy-source <bucket-name>/{} --bucket <bucket-name> --key {} --metadata-directive REPLACE --cache-control "max-age=3600"
Ersetzen Sie ihn <bucket-name>
durch den Namen Ihres Eimers
WARNUNG: Dadurch werden alle vorhandenen Metadaten in den Dateien wie acl überschrieben. Fügen Sie dem Befehl einfach zusätzliche Flags hinzu, um festzulegen, was Sie benötigen, z. B. --acl public-read
um einen vollständigen öffentlichen Zugriff zu ermöglichen. (danke @jackson)