I have an amazon S3 bucket with approximately 300K items in it that are used by a large website. I would like to set the expiration of all the objects that are served out of CloudFront from the S3 bucket so that they can be cached in the browser by the user's machine. Is there an easy way to set the cache control on all the s3 objects currently in the bucket AND most importantly set a default for the bucket so that any new items added also gain the expires and cache-control headers OR can this be done using CloudFront?
So far i have read a number of AWS documents but have found nothing:
Go to AWS Console and navigate to the CloudFront instance. Go to Policies - Response Headers and click on "Create response header policy" under custom policies. If you have an existing policy edit it. Add the Cache-Control header along with the max-age value you want.
By default, CloudFront caches a response from Amazon S3 for 24 hours (Default TTL of 86,400 seconds).
By default, each file automatically expires after 24 hours, but you can change the default behavior in two ways: To change the cache duration for all files that match the same path pattern, you can change the CloudFront settings for Minimum TTL, Maximum TTL, and Default TTL for a cache behavior.
Steps for adding cache control for existing objects in your bucket
For CloudFront you can specify Minimum TTL, Maximum TTL, and Default TTL for a cache behavior.they are basically the time for which an object can be cached on CloudFront and has nothing to do with adding an expiry header for the object i.e it doesn't mody any header
So now if you haven't added any header, then cloudfront will caches it for DEFAULT TTL. FOR MORE INFO READFOLLOWING TABLE http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html#ExpirationDownloadDist
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With