簡體   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