因为s3 DEEP_ARCHIVE 价格非常便宜,所以很多人选择用它来存储不常用的数据,因为价格比较低,所以这部分数据不是实时可以读取的,也就是说,如果你想读取,你必须先把数据从DEEP_ARCHIVE 格式转换会正常的s3数据,然后才能读取,每个文件转换需要12小时:
如果文件较少:
你可以通过web页面,点到最后的object 层级(最深一层),勾选文件,然后action里选择restore,然后12个小时以后,同样的路径,你就可以下载了(注意,restore是不支持文件夹的)
如果文件较多:
你可以通过aws 提供的服务进行批量处理:Batch Operations ,这个相当于是一个批处理,但是前提你需要有一个你想要恢复的文件列表(包含路径),如何获取这个列表呢?你可以手动或缺,也可以使用aws的提供的付费服务…….
当然,你也可以通过api 来进行操作:
1 |
aws s3api list-objects --bucket backetname --prefix folder/abc/2020 --output json --query 'Contents[?StorageClass==`DEEP_ARCHIVE`].[Key]'| jq -r '.[] | "--key '\''" + .[0] + "'\''" ' | xargs -L1 aws s3api restore-object --restore-request Days=7 --bucket legal-sec-log-archive |
上边的命令就是帮你把文件列出来,然后调用restore命令
命令也可以这样写:
1 |
aws s3api restore-object --bucket backetname --key object_path --restore-request Days=7,GlacierJobParameters={Tier=Standard} |
然后恢复以后可以通过如下命令下载:
1 |
aws s3 cp s3://backetname/folder/abc/ /tmp/path --recursive --force-glacier-transfer |
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021