如果未开启归档直读,归档类型的Object需要解冻后才能读取。冷归档、深度冷归档不支持开启直读,冷归档、深度冷归档类型的Object需要解冻后才能读取。归档类型Object完成解冻通常需要数分钟。冷归档类型Object完成解冻通常需要数小时。深度冷归档类型Object完成解冻通常需要12~48小时。解冻时间请以实际为准。本文为您介绍如何通过restore命令解冻文件。
注意事项
要解冻单个文件,您必须具有
oss:RestoreObject
权限;要按目录解冻文件,您必须具有oss:RestoreObject
和oss:ListObjects
权限。具体操作,请参见为RAM用户授权自定义的权限策略。从ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,您无需根据系统刷新Binary名称。如果您的ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考。
关于归档存储、冷归档存储或者深度冷归档存储类型文件的解冻状态以及费用说明,请参见解冻文件。
仅1.7.11及以上版本支持解冻文件。
命令格式
ossutil restore oss://bucketname[/prefix][local_xml_file]
[--encoding-type <value>]
[--payer <value>]
[--version-id <value>]
[-r, --recursive]
[-f, --force]
[--object-file, <value>]
[--snapshot-path, <value>]
[--disable-ignore-error]
[--retry-times <value>]
[-j,--job <value>]
参数及选项说明如下:
配置项 | 说明 |
bucketname | Bucket名称。 |
prefix | Bucket下的资源,例如目录、文件等。 |
local_xml_file | 本地XML格式文件,用于保存冷归档类型文件的解冻参数。 |
--encoding-type | 对prefix名称进行编码,取值为url。如果不指定该选项,则表示prefix未经过编码。 |
--payer | 请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester。 |
--version-id | Object的指定版本。仅适用于已开启或暂停版本控制状态Bucket下的Object。 |
-r,--recursive | 如果指定该选项时,ossutil将解冻所有与prefix匹配的文件。如果不指定该选项,则ossutil只解冻指定文件。 |
-f, --force | 强制操作,不进行询问提示。 |
--object-file | 该选项用于批量解冻多个归档存储、冷归档存储或者深度冷归档存储类型的Object。使用该选项的步骤如下:
说明 当其中一个Object操作出现错误时,ossutil会将该Object的错误信息记录到report文件,并继续解冻其他Object。成功操作的Object信息不会被记录到report文件中。 |
--snapshot-path | 如果指定该选项,则只对本次操作的Object生成快照。如果操作的Object已经存在快照信息,则忽略本次操作。 说明 该选项需结合-r,--recursive或--object-file选项使用。 |
--disable-ignore-error | 批量操作时不忽略错误。 |
--retry-times | 发生错误后的重试次数。默认值为10,取值范围为1~500。 |
-j,--job | 多文件操作时的并发任务数,默认值为3,取值范围为1~10000。 |
解冻归档类型Object
解冻归档类型Object需要1分钟时间,解冻中的Object不支持读取。
解冻状态默认持续1天。对解冻状态的文件调用restore命令,会将Object的解冻状态延长1天,最多可以延长到7天,之后Object又回到初始时的冷冻状态。
您可以通过cp命令转换Object存储类型。更多信息,请参见修改文件存储类型。
解冻归档类型Object时,也可以在本地创建XML格式文件config.xml,并在文件中配置解冻天数参数。
<RestoreRequest>
<Days>3</Days>
</RestoreRequest>
解冻单个归档类型Object
以下示例用于解冻目标存储空间examplebucket下名为exampleobject.txt的归档类型Object,并且解冻状态保持3天。
ossutil restore oss://examplebucket/exampleobject.txt config.xml
以下示例用于解冻目标存储空间examplebucket下归档类型文件exampleobject.txt的指定版本。
ossutil restore oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** config.xml
关于获取Object所有版本的具体操作,请参见ls(列举账号级别下的资源)。
解冻多个归档类型Object
示例一:不同目录下
当您需要解冻examplebucket中的多个归档类型Object,且这些Object归属于Bucket的不同目录下,例如exampleobject1.jpg位于examplebucket根目录下,exampleobject2.png位于examplebucket的dir1/目录下,exampleobject3.txt位于examplebucket的dir2/目录下。您需要按照以下步骤完成解冻操作。
将待解冻的多个归档类型Object写入本地文件localfile.txt。
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt
在config.xml文件中配置解冻状态时间为3天。
<RestoreRequest> <Days>3</Days> </RestoreRequest>
解冻多个归档类型Object。
结合--object-file选项解冻目标存储空间examplebucket下的多个归档类型Object。
ossutil restore oss://examplebucket --object-file localfile.txt --snapshot-path dir/ config.xml
示例二:相同目录下
方法一
您可以参考示例一解冻某个Bucket中相同目录下的多个归档存储类型Object。
方法二
结合-r选项,解冻examplebucket中指定目录dest下的所有归档类型Object。
ossutil restore oss://examplebucket/dest -r config.xml
返回结果
以上操作成功后,返回结果中将包含发起解冻请求所用时长,示例如下:
0.106852(s) elapsed
解冻冷归档类型Object
根据解冻Object的大小,实际解冻时间可能会有变化,请以实际解冻时间为准。
解冻单个或多个冷归档类型Object前,您需要在本地创建XML格式文件config.xml,并在文件中配置如下解冻参数。
<RestoreRequest>
<Days>3</Days>
<JobParameters>
<Tier>Bulk</Tier>
</JobParameters>
</RestoreRequest>
配置参数说明如下:
参数 | 说明 |
Days | 冷归档文件保持解冻状态的时间,单位为天。 取值范围:1~365 |
Tier | 冷归档文件解冻优先级。 取值如下:
|
解冻单个冷归档类型Object
按照config.xml文件配置,指定在1小时内解冻目标存储空间examplebucket下的exampleobject.jpg,并且解冻状态保持3天。
ossutil restore oss://examplebucket/exampleobject.jpg config.xml
解冻多个冷归档类型Object
示例一:不同目录下
当您需要解冻examplebucket中的多个冷归档类型Object,且这些Object归属于Bucket的不同目录下,例如exampleobject1.jpg位于examplebucket根目录下,exampleobject2.png位于examplebucket的dir1/目录下,exampleobject3.txt位于examplebucket的dir2/目录下。您需要按照以下步骤完成解冻操作。
将待解冻的多个冷归档类型Object写入本地文件localfile.txt。
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt
解冻多个Object。
结合--object-file选项,按照config.xml文件配置,指定在1小时内解冻目标存储空间examplebucket下的多个冷归档类型Object,并且解冻状态保持3天。
ossutil restore oss://examplebucket --object-file localfile.txt --snapshot-path dir/ config.xml
示例二:相同目录下
方法一
您可以参考示例一解冻某个Bucket中相同目录下的多个冷归档存储类型Object。
方法二
结合-r选项,解冻examplebucket下指定目录dest下的所有冷归档类型Object。
ossutil restore oss://examplebucket/dest -r config.xml
返回结果
以上操作成功后,返回结果中将包含发起解冻请求所用时长,示例如下:
0.106852(s) elapsed
解冻深度冷归档类型Object
根据解冻Object的大小,实际解冻时间可能会有变化,请以实际解冻时间为准。
解冻单个或多个深度冷归档类型Object前,您需要在本地创建XML格式文件config.xml,并在文件中配置如下解冻参数。
<RestoreRequest>
<Days>3</Days>
<JobParameters>
<Tier>Standard</Tier>
</JobParameters>
</RestoreRequest>
配置参数说明如下:
参数 | 说明 |
Days | 深度冷归档文件保持解冻状态的时间,单位为天。 取值范围:1~365 |
Tier | 深度冷归档文件解冻优先级。 取值如下:
|
解冻单个深度冷归档类型Object
按照config.xml文件配置,指定在48小时内解冻目标存储空间examplebucket下的exampleobject.jpg,并且解冻状态保持3天。
ossutil restore oss://examplebucket/exampleobject.jpg config.xml
解冻多个深度冷归档类型Object
示例一:不同目录下
当您需要解冻examplebucket中的多个深度冷归档类型Object,且这些Object归属于Bucket的不同目录下,例如exampleobject1.jpg位于examplebucket根目录下,exampleobject2.png位于examplebucket的dir1/目录下,exampleobject3.txt位于examplebucket的dir2/目录下。您需要按照以下步骤完成解冻操作。
将待解冻的多个深度冷归档类型Object写入本地文件localfile.txt。
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txt
解冻多个Object。
结合--object-file选项,按照config.xml文件配置,指定在48小时内解冻目标存储空间examplebucket下的多个深度冷归档类型Object,并且解冻状态保持3天。
ossutil restore oss://examplebucket --object-file localfile.txt --snapshot-path dir/ config.xml
示例二:相同目录下
方法一
您可以参考示例一解冻某个Bucket中相同目录下的多个深度冷归档存储类型Object。
方法二
结合-r选项,解冻examplebucket下指定目录dest下的所有深度冷归档类型Object。
ossutil restore oss://examplebucket/dest -r config.xml
返回结果
以上操作成功后,返回结果中将包含发起解冻请求所用时长,示例如下:
0.106852(s) elapsed
通用选项
当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。
例如您需要解冻另一个阿里云账号下,华东2(上海)地域下目标存储空间testbucket下的exampletest.png文件,命令如下:
ossutil restore oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
关于此命令的其他通用选项的更多信息,请参见通用选项。
相关文档
如果需要查看文件解冻是否已完成,请参见stat(查看Bucket和Object信息)。
如果需要使OSS文件永久处于解冻状态,请参见如何使OSS文件永久处于解冻状态?。