AWS S3:如何通过 CLI 更改 S3 存储桶中单个对象的 HTTP 标头?

AWS S3:如何通过 CLI 更改 S3 存储桶中单个对象的 HTTP 标头?

正如问题所暗示的,我想通过 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只期望将目录作为源传递吗?有谁知道如何对单个文件执行此操作?我想编写一个脚本并传递一些需要更改的文件 - 这就是我问的原因。谢谢。

答案1

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 文件夹之间递归工作,而不是在单个文件上工作。

希望有帮助:)

相关内容