问题
I'm using Amazon S3 webhosting for my static html,js,css (etc..) files. After replacing my index.html file, I still get the old version when consuming via the browser. I would like to set a default ttl to the bucket (and not to specific objects in it). I found this link: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDefaultTTL
but can't find the "Object Caching" setting in the dashboard. can someone point out where it is?
回答1:
Here's an Amazon S3 link that answers your question. According to Amazon, you can't set the cache control header for the entire bucket unless you use a third party tool (that page links to a few). One tool I ran across describes how to set the cache directives for objects submitted using a PUT
request (or in bulk using their tool). See BucketExplorer for more info.
Here is a cut-paste of Amazon's instructions (since S.O. doesn't like to rely on external links that might change or disappear):
To add a Cache-Control or Expires header field to Amazon S3 objects using the Amazon S3 console
- Sign in to the AWS Management Console and open the Amazon S3 console at https://console.aws.amazon.com/s3.
- In the Amazon S3 console, in the buckets pane, click the name of the bucket that contains the files.
- In the list of objects, select the first object to which you want to add a header field.
- Click Actions and click Properties.
- In the right pane, expand Metadata.
- Click Add More Metadata.
- In the Key list, click Cache-Control or Expires, as applicable.
- In the Value field, enter the applicable value:
- For a Cache-Control field, enter:
max-age=number of seconds that you want objects to stay in a CloudFront edge cache
- For an Expires field, enter a date and time in HTML format.
- Click Save.
If you want to add a header field to additional objects, click the name of the next object, and repeat steps 5 through 9.
回答2:
Yes. In case you are using the CloudFront Distribution - you just need to check your invalidation and why your object invalidation didn't work properly. What is TTL value.
Do you use CDN?
来源:https://stackoverflow.com/questions/42531643/amazon-s3-static-web-hosting-caching