Amazon s3 如何在AmazonS3中为bucket中的所有图像设置expires头
在Amazon S3中,一个存储桶中有大约10000多个图像,如何一次性设置所有图像的expires头?非常确定,不可能在一个请求中完成此操作。相反,您必须发出10000个请求,每个键一个请求,新的头/元数据以及指向同一键的Amazon s3 如何在AmazonS3中为bucket中的所有图像设置expires头,amazon-s3,expires-header,Amazon S3,Expires Header,在Amazon S3中,一个存储桶中有大约10000多个图像,如何一次性设置所有图像的expires头?非常确定,不可能在一个请求中完成此操作。相反,您必须发出10000个请求,每个键一个请求,新的头/元数据以及指向同一键的x-amz-copy-source头(这样您就不需要重新上传对象)。我提供的链接更详细地介绍了PUT-copy操作,但这几乎是在s3上更改对象元数据的方法。另一种解决方案是在URL中添加response-expires参数。它设置响应的Expires标题 有关更多详细信息,请
x-amz-copy-source
头(这样您就不需要重新上传对象)。我提供的链接更详细地介绍了PUT-copy操作,但这几乎是在s3上更改对象元数据的方法。另一种解决方案是在URL中添加response-expires
参数。它设置响应的Expires
标题
有关更多详细信息,请参阅中的“请求参数”部分。您可以使用使用S3API的第三方应用程序对bucket文件进行批量更改。这些应用程序不会只使用一个请求设置标题,而是会自动处理10000多个请求 我目前使用的是,这是一个与S3 bucket交互的免费实用程序。在这个工具中,我可以选择多个文件并指定将应用于所有文件的HTTP头
另一种方法是使用S3 API库开发自己的脚本或工具。我发现了一个使用AWS CLI的很好的解决方案:
aws s3 cp s3://bucketname/optional_path s3://bucketname/optional_path --recursive --acl public-read --metadata-directive REPLACE --cache-control max-age=2592000
这将设置缓存控制30天。请注意,您可以选择复制或替换以前的标题数据。由于AWS将自动为每种媒体类型包含正确的元内容类型数据,并且我有一些不好的标题,所以我选择覆盖所有内容 Cyberduck也将编辑标题
奇怪的是,我没有配置凭据,但它没有抛出任何错误,只是打印出所有的图像名称@MauvisLedford@Rollo在
cp
之后,需要重复两次路径,因为它们是源路径和源路径destination@ericn我知道已经很晚了,但你是否可以公开访问你的图像?如果我们设置了缓存控制
,我们需要过期吗?即使存在缓存控制,pingdom和gtmetrix等服务似乎也会在缺少过期信息时犹豫不决。请注意,这不会合并现有元数据。不幸的是,没有--metadata指令合并选项:(根据RFC,整数值是不允许的。@Arun,这是S3中的吗?我想UI已经改变了,因为没有“更多”在顶部菜单中。@YukiMatsukura如何在S3中添加一个特定的日期,它的工作原理类似于Apache的access+1 year
?如果我们手动设置年份等,我们将不得不不断手动编辑Expires标头!但没有递归选项