我有一个Amazon S3存储桶,其中大约有300K个项目,这些项目被一个大型网站使用。我想设置所有从S3存储桶中通过CloudFront提供的对象的过期时间,以便用户的浏览器可以缓存它们。是否有一种简单的方法来设置当前存储桶中所有S3对象的缓存控制并且最重要的是为存储桶设置默认值,以使任何新添加的项目也获得过期和缓存控制头信息或者是否可以使用CloudFront来完成?
到目前为止,我已经阅读了许多AWS文档,但没有找到相关内容:
到目前为止,我已经阅读了许多AWS文档,但没有找到相关内容:
为现有存储桶中的对象添加缓存控制的步骤
对于CloudFront,您可以为缓存行为指定最小TTL、最大TTL和默认TTL。它们基本上是对象在CloudFront上可以被缓存的时间,与为对象添加失效标头无关,即它不修改任何标头
因此,如果您还没有添加任何标头,则CloudFront会将其缓存为DEFAULT TTL。 有关更多信息,请阅读以下表格 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html#ExpirationDownloadDist
aws s3 cp s3://YOUR_BUCKET/ s3://YOUR_BUCKET/ --metadata-directive REPLACE --recursive --cache-control max-age=31536000
该命令用于将数据从您的S3桶复制到同一桶中,并替换元数据,递归复制所有子目录和文件,并设置缓存控制选项为max-age=31536000。 - Thomas