Amazon-Web-Services

AWS S3:如何通過 CLI 更改 S3 儲存桶中單個對象的 HTTP 標頭?

  • February 18, 2019

正如問題所暗示的那樣,我想通過 CLI 為 S3 儲存桶中的單個對象更改/設置一些 HTTP 標頭。這是我到目前為止所嘗試的:

aws s3 sync --delete --acl public-read --cache-control \
max-age=31536000 --expires "Mon, 01 Oct 2035 20:30:00 GMT" \
js/jquery-blockui/jquery.blockUI.min.js \
s3://mybucket/js/jquery-blockui/jquery.blockUI.min.js --dryrun

問題是,這aws s3 sync告訴我他在我的文件系統上找不到文件/home/user/somedir/js/jquery-blockui/jquery.blockUI.min.js/(請參閱最後一個斜杠 - 該文件確實存在):

warning: Skipping file
/home/user/somedir/js/jquery-blockui/jquery.blockUI.min.js/.
File does not exist.

那麼aws s3 sync只期望一個目錄作為源傳遞嗎?有誰知道,如何為單個文件做到這一點?我想編寫一個腳本並傳遞一些需要更改的文件 - 這就是我問的原因。謝謝。

aws s3 cp是你的朋友 :)

這應該有效:

aws s3 cp --acl public-read --cache-control \
max-age=31536000 --expires "Mon, 01 Oct 2035 20:30:00 GMT" \
js/jquery-blockui/jquery.blockUI.min.js \
s3://mybucket/js/jquery-blockui/jquery.blockUI.min.js

請注意,--delete不支持,aws s3 cp但這是次要的。上傳好舊的後,您可以隨時在本地刪除它/bin/rm:)

是的,aws s3 sync只能在本地目錄和 S3 文件夾之間遞歸地工作,而不是在單個文件上。

希望有幫助:)

引用自:https://serverfault.com/questions/953694