我们在Amazon S3的存储桶中有大约10,000个以上的图像,如何一次性在所有图像上设置过期标题?
答案 0 :(得分:44)
只是提醒我使用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将自动为每种媒体类型包含正确的元内容类型数据,并且我有一些错误的标题,我只是选择覆盖所有内容。
答案 1 :(得分:5)
您可以使用使用S3 API的第三方应用对存储桶文件进行批量更改。这些应用程序不会仅使用一个请求设置标题,但会自动执行10,000多个请求。
我目前使用的是Cloudberry Explorer,它是一个与S3存储桶交互的免费软件实用程序。在此工具中,我可以选择多个文件并指定将应用于所有文件的HTTP标头。
另一种方法是使用S3 API库开发自己的脚本或工具。
答案 2 :(得分:2)
另一种解决方案是在您的网址中添加response-expires
参数。它设置响应的Expires
标头。
请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html中的“请求参数”部分以获取更多详细信息。
答案 3 :(得分:1)
Cyberduck也会编辑标题。
刚刚在一个水桶中处理了6000张图像。
答案 4 :(得分:1)
答案 5 :(得分:-3)
非常确定在单个请求中无法执行此操作。相反,您需要为每个密钥生成10,000 PUT个请求,并使用您想要的新标头/元数据以及指向同一密钥的x-amz-copy-source
标头(这样您就不需要了)重新上传对象)。我提供的链接详细介绍了PUT复制操作,但它几乎是 在s3上更改对象元数据的方式。