30

我们在 Amazon S3 的存储桶中有大约 10,000 多张图像,如何一次性为所有图像设置过期标头?

4

6 回答 6

49

请注意,我使用 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

这会将 Cache-Control 设置为 30 天。请注意,您可以选择复制或替换以前的标题数据。由于 AWS 会自动为每种媒体类型包含正确的元内容类型数据,而且我有一些错误的标头,我只是选择覆盖所有内容。

于 2015-05-13T21:11:23.293 回答
6

您可以使用使用 S3 API 的第三方应用程序对存储桶文件进行批量更改。这些应用程序不会仅使用一个请求来设置标头,而是会自动执行 10,000 多个所需的请求。

我目前使用的是Cloudberry Explorer,它是一个与您的 S3 存储桶交互的免费软件实用程序。在这个工具中,我可以选择多个文件并指定将应用于所有文件的 HTTP 标头。

在此处输入图像描述

在此处输入图像描述

另一种方法是使用 S3 API 库开发您自己的脚本或工具。

于 2014-11-23T07:45:41.223 回答
2

另一种解决方案是response-expires在您的 URL 中添加参数。它设置Expires响应的标头。

有关更多详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html中的请求参数部分。

于 2014-02-07T00:51:47.007 回答
2
  1. 选择文件夹
  2. 从顶部菜单中,更多
  3. 选择更改元数据
  4. 将密钥添加为过期
  5. 将值添加为 2592000(例如)
于 2018-05-26T13:21:46.583 回答
1

Cyber​​duck 也将编辑标题。

  1. 选择所有项目
  2. 命令 & 我(获取信息)
  3. 提供一个 GUI 来编辑各种带有内置预设的标题。

刚刚在一个桶中处理了 6000 张图像,没有任何问题。

于 2018-04-14T06:43:16.727 回答
-3

很确定不可能在一个请求中做到这一点。相反,您必须发出 10,000 个PUT请求,每个键一个,您想要的新标头/元数据以及x-amz-copy-source指向同一键的标头(这样您就不需要重新上传对象)。我提供的链接更详细地介绍了 PUT 复制操作,但这几乎是在 s3 上更改对象元数据的方法。

于 2014-02-06T16:44:17.130 回答