繁体   English   中英

向所有 S3 文件添加缓存控制和过期标头但防止它们变得不可访问的正确方法?

[英]Correct way to add cache-control and expires headers to all S3 files but prevent them from becoming inaccessible?

如何在 AWS S3 中添加缓存控制? 有人说

./s3cmd 
--recursive modify 
--add-header="Cache-Control:max-age=86400" 
s3://yourbucket/

作为添加缓存控制(以及过期)标头的正确命令,但许多人随后表示它删除了对文件的可访问性(访问被拒绝)。

显然,如果您逐个文件夹运行它,它会起作用,但是当您拥有数千个文件夹时,这并不容易。

避免这种情况的正确命令是什么?

更新 1 :可以使用--add-header='Cache-Control:max-age=86400, public'是一个解决方案吗?

您需要添加--acl-public 以下是 s3cmd 使用页面对此的说明

-P, --acl-public      Store objects with ACL allowing read for anyone.

还:

显然,如果您逐个文件夹运行它,它会起作用,但是当您拥有数千个文件夹时,这并不容易。

我不确定这与这个问题有什么关系。

更新 1:可以使用 --add-header='Cache-Control:max-age=86400, public' 是一个解决方案吗?

public只说“可以在公共 CDN 中缓存它”(等等)。 这不会使 s3 文件公开。

这是一个解决方案,您可以通过递归添加到期标题来修改文件。

编码

s3cmd --recursive modify --add-header="Cache-Control:public ,max-age=31536000" s3://your_bucket_name/

执行此操作时,您的文件不会无法访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM