AWS S3 Glacier数据恢复

存储在S3中的数据,我设定了将超过360天之后自动转入archive模式,因为经过1年后,这些旧数据使用就很少了,转换存储模式能节省不少费用。

但是对于这些已经archive之后的文件,需要使用时,默认是无法下载的,需要去恢复才行。

对于单个或者少量文件恢复,可以直接在Console界面上操作


但是对于大量文件需要恢复对情况,就必须用aws cli或者使用Batch Operations 来处理,S3 Batch Job是最好的方式,具体如下

1.- 使用命令导出需要恢复的文件列表,在Cloudshell中执行

##替换Your-S3-Bucket,和Your-Folder/Path
aws s3api list-objects-v2 --bucket Your-S3-Bucket --prefix Your-Folder/Path/ --query "Contents[?StorageClass=='GLACIER'][Key]" --output text | sed 's/\t/\n/g' > galcier-restore.txt
##根据特定文件名获取文件列表,文件夹有空格用\, grep -E 截取特定文件名字符

aws s3api list-objects-v2 --bucket Your-S3-Bucket --prefix Marti/Sum\ data/ --query "Contents[?StorageClass=='GLACIER']" --output text | grep -E 'Marti/Sum data/Sum_' >> restore-txt

2.- 将文件下载到本机,可先上传到一个S3 bucket里,使用 aws s3 cp 命令

aws s3 cp ./glacier-restore.txt s3://Your-S3-Bucket/

下载下来后,将txt内容复制到excel,一栏放置bucket名,一栏放文件路径,然后保存成csv文件,如下图

3.- 将csv文件上传会S3 bucket,然后进入S3 Batch Operation创建job

指向csv文件

指定保存结果的S3路径

Permission建议根据这个提示创建一个新role

创建好后,需要手动触发 Run Job(新版本会自动跑)

完成后系统会报告结果

然后等待数个小时后,恢复的文件便可以从S3中下载了


有一次遇到一个奇怪的问题,job fail了,提示:

Reasons for failure

Unsupported encryption type SSE_KMS used for manifest

查询后发现原来是存放restore.csv的S3 bucket使用了自定义的key,后来将文件上传到其它bucket解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值