正如问题所暗示的那样,我想通过 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
是你的朋友 :)这应该有效:
请注意,
--delete
不支持,aws s3 cp
但这是次要的。上传好旧的后,您可以随时在本地删除它/bin/rm
:)是的,
aws s3 sync
只能在本地目录和 S3 文件夹之间递归地工作,而不是在单个文件上。希望有帮助:)