Amazon-S3
遞歸更改 Amazon S3 上給定副檔名的文件的內容類型
我有一個帶有嵌套“文件夾”結構的大型 S3 儲存桶,其中包含(除其他外)靜態 .json 和 .md 文件。這些文件由 S3 提供,
text/plain
而不是正確的application/json
和text/markdown
.我已更新儲存桶預設值,以便新上傳的內容類型正確。
遍歷“樹”並更新與特定副檔名匹配的文件的內容類型的最佳方法是什麼?
以下是如何使用 aws cli 工具執行此操作的範例。cp 工具允許使用遞歸選項,我認為 s3api 工具無法做到這一點。在這種情況下,我正在修復一堆 SVG。當您準備好釋放它時,刪除 –dryrun 選項。
aws s3 cp \ --exclude "*" \ --include "*.svg" \ --content-type="image/svg+xml" \ --metadata-directive="REPLACE" \ --recursive \ --dryrun \ s3://mybucket/static/ \ s3://mybucket/static/
經過一番探勘,我發現該
s3cmd
工具可以做到這一點。例如,要將 JSON 文件設置為 application/json:s3cmd --recursive modify --acl-public \ --add-header='content-type':'application/json' \ --exclude '' --include '.json' \ s3://bucket/