从 Glacier 获取对象非常耗时,因此我决定改用 S3 IA 存储类。
我需要列出我的存储桶中具有 Glacier 存储类的所有对象(我通过 LifeCycle 策略对其进行了配置)并将其更改为 S3 IA。
是否有任何脚本或工具?
最佳答案
您可以使用 list-objects 来做到这一点list-objects
将返回 StorageClass
,在您的情况下,您要过滤值 GLACIER
aws s3api list-objects --bucket %bucket_name% --query 'Contents[?StorageClass==`GLACIER`]'
你想要的只是获得匹配的 Key 列表
aws s3api list-objects --bucket %bucket_name% --query 'Contents[?StorageClass==`GLACIER`][Key]' --output text
然后您将需要通过更改 Key 的存储类来复制对象
aws s3api list-objects --bucket %bucket_name% --query 'Contents[?StorageClass==`GLACIER`][Key]' --output text
| xargs -I {} aws s3 cp s3://bucket_name/{} s3://bucket_name/{} --storage-class STANDARD_IA
关于amazon-web-services - 列出具有特定存储类的 S3 存储桶对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40241957/