【问题标题】:Listing S3 bucket objects with specific storage class列出具有特定存储类的 S3 存储桶对象
【发布时间】:2018-03-02 00:55:58
【问题描述】:

从 Glacier 获取对象非常耗时,因此我决定改用 S3 IA 存储类。 我需要列出存储桶中所有具有 Glacier 存储类的对象(我通过 LifeCycle 策略对其进行了配置)并将其更改为 S3 IA。

是否有任何脚本或工具可以做到这一点?

【问题讨论】:

  • 知道如何使用 javascript 实现它,使用 aws-sdk

标签: amazon-web-services amazon-s3 aws-cli amazon-glacier


【解决方案1】:

您可以使用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

【讨论】:

    【解决方案2】:

    并且...如果您需要在 Windows 中从 Powershell 运行它,我必须这样做:

    aws s3api list-objects --bucket Your_Bucket --query 'Contents[?StorageClass==`STANDARD`][Key]' --output text | foreach { aws s3 cp s3://Your_Bucket/$_ s3://Your_Bucket/$_ --storage-class REDUCED_REDUNDANCY }
    

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 1970-01-01
      • 2021-01-19
      • 2021-05-09
      • 2015-11-30
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多