如何更新S3存储桶中所有项目的存储类别?

McF*_*den 5 amazon-s3 amazon-web-services

我发现自己希望自己可以轻松地将存储桶中的所有项目更改为S3上的特定存储类。通常这是因为项目是按标准上传的,我希望它们在“减少冗余”中节省几美元。

我看不到通过AWS控制台执行此操作的方法。

更新存储桶中所有文件的最佳方法是什么?

McF*_*den 1

无法通过 AWS 控制台执行此操作。您将需要迭代它们并更新每个对象的元数据。

这是一个 Ruby 脚本,它可以做到这一点:

https://gist.github.com/mcfadden/b1e564f3323f98720ff2

其他一些想法:

在创建对象时设置正确的存储类。您不会想再次循环遍历所有项目。

某些存储类并非适用于所有对象。例如,在对象在存储桶中保存 30 天之前,您无法将对象设置为标准 - 不频繁访问类别。

如果您尝试使用标准 - 不频繁访问存储类,则可以设置生命周期规则,以在 30 天后自动将对象移至此存储类。

  • 你在一个原本准确的答案中偏离了一点。*“您可以通过在 `x-amz-storage-class` 标头中指定 `STANDARD_IA` 来直接将 `PUT` 放入标准 – IA 中。”* [请参阅 S3 S/IA 常见问题解答](https://aws.amazon.com /s3/faqs/#sia)。在 30 天之前,您无法使用生命周期策略“自动”迁移它们。 (2认同)