I'm storing the static content (images) used in my landing pages on Amazon S3 and then delivering them using Amazon CloudFront. While testing the landing pages using GTmetrix, it recommended me to specify an expiration for these static resources (which were being served from CloudFront). While uploading the objects, I followed the instructions given on this page for setting up the CDN but apparently those steps don't specify an expiration. So I followed the steps mentioned here to add a Cache-Control header to each object but this requires me to add the header manually for each object I'm serving through CloudFront (which is stored in S3).
Is there a more elegant/efficient way to specify Cache-Control headers for all my static resources hosted on S3 and being served by CloudFront?
What's a good value for Cache-Control to set for the static resources? Right now I've thought of going with 'private, max-age=5184000, no-cache'. My basic purpose with this value is that while making some changes to the images and updating them on S3, those changes should be propagated to the user as fast as possible (which probably requires setting a lower max-age value) while at the same time I want to cache the resources for a long time. Is the value I've thought of correct for achieving this?