amazon-web-services - 列出具有特定存储类的 S3 存储桶对象

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

从 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/

相关文章:

json - 我如何仅允许特定时间的 aws IAM 权限

amazon-web-services - 如何直接在 s3 上解压 s3 上的文件?

php - Aws PHP Sdk 3:S3::putObject():AWS HTTP 错误:cURL 错误 6:无法解析主机 's3.Ireland.amazonaws.com'

amazon-web-services - 如何在执行 [aws cloudformation create-stack] 后自动提取 VPCID、PrivateSubnet1、PublicSubnet1、S3BucketName 和 DBSubnetGroup

amazon-web-services - 如何在 CloudFormation 中获取 Route53 的 VPC 终端节点 DNS 名称?

amazon-web-services - 为 EC2 上的 Docker 容器分配 IP 地址

amazon-web-services - 如何获取其他地区的ssm参数?

python - 使用客户端加密的 AWS S3

amazon-s3 - 在aws cli中的ls返回 "PRE"。为什么以及如何摆脱它

docker - 带有aws-cli v2和dind的Docker镜像,基于Alpine:3.11