全部产品
Search
文档中心

对象存储 OSS:使用restore命令解冻文件

更新时间:Jul 30, 2024

如果未开启归档直读,归档类型的Object需要解冻后才能读取。冷归档、深度冷归档不支持开启直读,冷归档、深度冷归档类型的Object需要解冻后才能读取。归档类型Object完成解冻通常需要数分钟。冷归档类型Object完成解冻通常需要数小时。深度冷归档类型Object完成解冻通常需要12~48小时。解冻时间请以实际为准。本文为您介绍如何通过restore命令解冻文件。

注意事项

  • 要解冻单个文件,您必须具有oss:RestoreObject权限;要按目录解冻文件,您必须具有oss:RestoreObjectoss: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。使用该选项的步骤如下:

  1. 您需要指定.txt或者XML格式的本地文件,并在本地文件中换行填写所有待解冻的Object。

  2. ossutil读取本地文件中的所有Object,然后对这些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/目录下。您需要按照以下步骤完成解冻操作。

      1. 将待解冻的多个归档类型Object写入本地文件localfile.txt。

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. config.xml文件中配置解冻状态时间为3天。

        <RestoreRequest>
            <Days>3</Days>
        </RestoreRequest>
      3. 解冻多个归档类型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

冷归档文件解冻优先级。

取值如下:

  • Expedited(高优先级):1小时内完成解冻。

  • Standard(标准):2~5小时内完成解冻。

  • Bulk(批量):5~12小时内完成解冻。

  • 解冻单个冷归档类型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/目录下。您需要按照以下步骤完成解冻操作。

      1. 将待解冻的多个冷归档类型Object写入本地文件localfile.txt。

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. 解冻多个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

深度冷归档文件解冻优先级。

取值如下:

  • Expedited(高优先级):12小时内完成解冻。

  • Standard(标准):48小时内完成解冻。

  • 解冻单个深度冷归档类型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/目录下。您需要按照以下步骤完成解冻操作。

      1. 将待解冻的多个深度冷归档类型Object写入本地文件localfile.txt。

        exampleobject1.jpg
        dir1/exampleobject2.png
        dir2/exampleobject3.txt
      2. 解冻多个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****

关于此命令的其他通用选项的更多信息,请参见通用选项

相关文档