正如问题所暗示的,我想通过 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 文件夹之间递归工作,而不是在单个文件上工作。
希望有帮助:)