归档、冷归档或深度冷归档存储类型的数据在存储时为了降低成本而被冻结无法直接读取,您可以使用ossutil 2.0提供的restore(解冻文件)命令对文件进行批量解冻,完成解冻后支持访问。
归档存储类型的文件支持开启归档直读功能,而冷归档和深度冷归档文件则必须通过解冻操作才能访问。
前提条件
批量解冻
ossutil 2.0 提供了多种方式来执行批量解冻操作,允许您根据业务需求灵活选择最合适的方案。
通过指定前缀实现批量解冻位于相同前缀下的所有目标文件。
通过读取包含待解冻对象的文件列表或清单批量执行解冻任务。
计费说明
解冻文件会产生存储费用、数据取回容量费用、请求费用,如果您解冻的是冷归档和深度冷归档类型的数据,还会产生临时存储费用。
注意事项
建议您指定
-j
参数增加 ossutil v2.0 的并发度以提升命令执行效率,在机器 CPU 和内存支持的情况下,推荐设置-j 128
。可以通过对Meta字段过滤,跳过已解冻或正在解冻中的Object。
批量解冻时,错误结果会存在
ossutil_output/
文件夹下。
命令格式
ossutil restore oss://bucket/object [flags]
参数 | 类型 | 说明 |
-r, --recursive | / | 进行递归操作。启用此选项时,将对存储空间中所有符合条件的对象进行操作;否则,仅处理指定路径的对象。 |
-j,--job | / | 多文件操作的并发任务数,默认值为3,取值范围为1~10000。 |
--days | int | 解冻天数。取值范围1~365。 说明 在批量操作中,如果对象包含多种存储类型且 例如:归档存储类型最多支持 7 天,深度冷归档最多支持 365 天。当 |
--metadata-include | stringArray | 指定需包含的元数据规则,即仅显示符合这些规则的Object。 |
--metadata-exclude | stringArray | 指定需排除的元数据规则,符合条件的Object将不被显示。 |
--list-format | string | 列表文件的格式,取值: |
--list-manifest-from | string | 当列表文件的格式为 |
关于该命令支持的更多参数,请参见参数说明。
示例
解冻固定前缀下的全部对象
以下命令用于解冻存储空间examplebucket
中前缀为prefix
的全部对象。
ossutil restore -r oss://examplebucket/prefix -j 128
解冻特定存储类型的对象
ossutil v2.0 中多条件过滤的匹配规则:
include 类规则从左到右逐条处理,一旦匹配上,则会立即包含该文件或目录。
exclude 类规则也是从左到右匹配,一旦匹配上,则会立刻排除该文件或目录。
因此如果需要筛选所有不含 Restore 信息的冷归档对象,需要先指定参数--metadata-exclude "x-oss-restore=*"
,后指定参数--metadata-include "x-oss-storage-class=ColdArchive"
。
以下命令用于解冻所有存储空间examplebucket
中存储类型为冷归档的所有对象。
ossutil restore -r oss://bucket --metadata-include "x-oss-storage-class=ColdArchive" -j 128
以下命令用于解冻存储空间examplebucket
中未被解冻过的冷归档对象,并设置解冻后的对象保持可读状态的持续时间为7天。
ossutil restore -r oss://bucket -j 128 --days=7 --metadata-exclude "x-oss-restore=*" --metadata-include "x-oss-storage-class=ColdArchive" -j 128
使用本地列表解冻
您可以通过读取包含待解冻对象的文件列表执行解冻任务。
对象的列表格式:每行包含一个对象,格式为标准 OSS 对象路径,如内容如下:
oss://examplebucket/object1
oss://examplebucket/object2
oss://examplebucket/object3
以下命令用于解冻本地列表object_list.txt中未被解冻过的对象,并设置解冻后的对象保持可读状态的持续时间为7天。
ossutil restore list://object_list.txt --days=7 --no-check-status
基于本地列表进行批量解冻时,添加--no-check-status
参数忽略解冻前的对象状态检查,可进一步提升执行效率(v2.0.4 以上版本支持)。
使用本地清单解冻
执行清单任务后,会在清单结果中生成一个 csv.gz 和 manifest.json 文件。从清单文件里解冻对象需要用到这两个文件,关于如何创建清单请参见存储空间清单。
以下命令用于通过 OSS 清单批量解冻所有清单中的冷归档对象。
ossutil restore list://object_list.csv.gz --list-format inventory --list-manifest-from manifest.json --days=7 --no-check-status --metadata-include "x-oss-storage-class=ColdArchive"