在cos的实际使用过程中,有一种场景:某些对象基本上不会使用,但是又要长期保存这些数据,这种数据被称为“冷数据”,这个时候就会用到cos的“归档存储”或“深度归档存储”,“归档存储”在存储费用上相对“标准存储”有较大的优势,详情参考 产品定价;
但是突然有一天这些数据恢复使用,要能永久访问,这时需要将为“归档存储”的对象恢复,单个的对象恢复控制台操作即可,参考:恢复归档对象
但是如果是有几十万个归档的对象需要恢复,控制台手动操作肯定不现实,这时候结合cos的 清单功能 和 批量处理 两个功能实现“批量恢复归档对象”;
如何 开通/添加清单 以及 清单的功能概述,这里不做过多介绍,官网文档有详细说明;
需要注意的是,添加清单里有个“生成周期”配置,默认是按天生成,配置清单后,是要到第二天才会生成清单(有的同学添加清单后发现并没有立即生成清单就是这个原因);
清单生成后,在清单列表这里点击“生成批量处理任务”进入创建任务界面:
创建任务界面第一步“地域及清单配置”这里,其它项默认即可(您也可以按照自己的业务需要配置),“清单文件路径” 这里,要选择生成的清单,如上截图,我的 “清单报告前缀” 是 “cos_bucket_inventory”,咱们去找到这个目录下的 manifest.json 这个文件,选中并确定:
关于 manifest.json 文件里的字段介绍,官网也有详细介绍,这里不做说明,详情参考 清单功能概述 ;
可以看到,manifest.json 文件里有个 key 的字段,是一个 csv 格式的压缩文件,咱们找到这个文件解压后打开它,会发现里面就是一份对象信息列表,对应的字段说明详见 清单功能概述:
由此可见,最终就是以这份文件的内容为准,对对象做处理;
点击下一步,到 “操作配置” 页面
“任务类型”配置选择“批量恢复归档存储”;
“恢复模式”配置根据自己的需求选择;(标准模式更快,批量模式成本更低,区别介绍详见 恢复归档对象)
“副本有效期”配置根据自己的需求选择;(文件恢复后超过副本有效期,文件再次进入“归档存储”模式,详情见 恢复归档对象)
这里的配置比较简单,不做过多介绍,详见 批量处理
点击“完成”,进入“批量任务”列表
注意,这里页面显示有个坑,进入“批量任务”列表会发现任务已创建,但是完成进度一直是不动的状态,这时候刷新任务列表:
刷新后,在状态一栏这里是“待确认”,点击“待确认”,开始任务:
这时,任务的状态是“已就绪”,需要再次刷新任务列表(真心吐槽下前端页面的问题,就不能自动刷新吗?每次都是手动)
可以看到状态一栏里,现在是“已完成”;
看截图,“完成对象/总对象数”一栏里,进度是100%,成功36%,这里不是bug哈,因为前面讲过了,这里的任务是依据清单生成的csv文件里的对象列表,列表里有很多不是“归档存储”的对象;只需要看“状态”一栏里,是否是“已完成”即可;
打开存储桶的“文件列表”,打开“归档存储”的对象“详情”,可以看到:
存储类型 归档存储( 副本已恢复,副本将于 2020-12-15 00:00:00 后自动过期删除 )
由于前面设置的副本有效期是1天,过一天后副本会自动删除,届时此对象就不能访问了;
问题来了,有同学会说,我现在要将这些“归档存储”对象永久能访问,毕竟上面的副本过期后这个对象又不能访问了;下面介绍将“归档存储”批量转换为“标准存储”
上面的步骤走完后,继续创建个批量任务,上面介绍的创建任务4个步骤原模原样的配置再走一遍,只需在第二步这里改变下:
“任务类型”配置为“批量数据复制”;
“目标存储桶”配置为本存储桶;
“存储类型”配置为“标准存储”
其他项默认;
点击下一步,完成配置生成任务即可;
截图看到,任务已经执行完成,有同学就问了,这个任务的进度是100%,成功100%,为什么上面的任务成功只有36%?这是因为上一个任务只对“归档存储”类型的对象做处理,这个任务是对所有对象做处理;
找到刚才的“归档存储”对象:
可以看到,现在这个对象的存储类型已改为“标准存储”;
这个“批量数据复制”任务的原理是将 csv 文件里所有的对象都改为“标准存储”;
创建任务这里支持自定义csv文件格式的清单
对于 清单格式 官方文档有介绍;这里再补充下;
1、对象名称必须是要 URL 编码过的;(比如:原对象路径+名称:meinv/001/1.jpg;url 编码:meinv%2f001%2f1.jpg)
2、csv文件不能用excel编辑,要用文本编辑器;(文本编辑器格式:"dg-1259220718","meinv%2f001%2f1.jpg")
数量少的文件可以在控制台手动操作,数量多的文件可以用系统清单功能自动生成的清单操作,这个自定义csv 批量处理这里虽然有这个选项,但是个人觉得作用不大,这里只是补充说明;
有觉得对这个过程不理解的地方欢迎评论。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。