本文介绍不同数据源归档数据如何解冻,并迁移到OSS。

阿里云OSS

OSS提供了ossutil工具来解冻归档文件,支持解冻指定前缀的归档类型Object。此处以Linux下使用ossutil工具解冻归档文件为例说明,具体步骤如下:

  1. 按照您使用的操作系统下载和安装ossutil工具,并配置可执行权限,具体操作请参见:安装ossutil
  2. 在Linux下执行./ossutil restore oss://bucket/path -r ./config.xml命令解冻指定前缀的归档类型Object。
    • -r用于指定前缀的归档类型Object解冻,对Bucket下所有符合条件的Object进行操作。
    • config.xml是本地XML格式文件,内容包含冷归档的解冻参数。示例如下:
      <RestoreRequest>
          <Days>3</Days>
          <JobParameters>
              <Tier>Bulk</Tier>
          </JobParameters>
      </RestoreRequest>

      参数说明请参见下表。

      参数描述
      Days 设置冷归档文件保持解冻状态的时间,单位为天,取值范围1~7。
      Tier 设置冷归档文件的解冻模式,可选值为Expedited、Standard、Bulk。
      • Expedited(高优先级)表示1小时内完成解冻。
      • Standard(标准)表示2~5小时完成解冻。
      • Bulk(批量)表示5~12小时完成解冻。
      重要 数据解冻会产生一定费用。更多信息,请参见数据处理费用

    关于解冻Object的更多信息,请参见restore(解冻文件)

  3. 解冻完成后,迁移数据到OSS。具体操作,请参见:阿里云OSS之间迁移教程

AWS S3

S3提供了S3cmd工具和批量两种解冻方法,请根据实际选择解冻方式。
  • 使用S3cmd工具解冻,每秒解冻约100个,适用于文件总数小于10万的场景。
  • 针对文件总数超过10万的,推荐使用批量解冻功能,批量解冻需在控制台界面做相关的配置,即可轻松批量解冻数百、数百万或数十亿归档数据。

使用S3cmd工具解冻文件的具体步骤如下:

  1. 执行pip install s3cmd命令,安装s3cmd工具。
  2. 通过命令行配置AccessKey ID、AccessKey Secret,执行s3cmd -configure命令输入AccessKey ID、AccessKey Secret。
  3. 执行s3cmd restore -D 10 -priority='standard' s3://bucket/object命令解冻指定Bucket下的文件。
    • -D用于指定解冻时长,不指定默认解冻时长为1天,此处以解冻时长10天为例介绍。
    • -priority用于指定还原文件的优先级,优先级包括批量(bulk)、标准(standard)和加急(expedited),此处以标准为例介绍。

    根据选择不同优先级,解冻所产生的费用不同。关于费用的更多信息,请参见AWS S3解冻收费文档。

  4. 解冻完成后,迁移数据到OSS。具体操作,请参见:AWS S3迁移教程
使用批量解冻的具体步骤如下:
重要 批量解冻功能基于AWS Inventory清单,如果您需要批量解冻某个Bucket下的文件,请先创建该bucket的清单任务,并且已生成第一次报告。
  1. 创建一个拥有Bucket所有操作权限的角色。
    1. 登录后,进入IAM控制台,点击左侧角色,选择创建角色
    2. 在创建角色页面,选择受信任实体的类型为AWS产品 > S3,选择使用案例为S3 Batch Operations,并单击下一步:权限
    3. 配置权限策略,在筛选框中输入S3查找S3相关的策略,选择AmazonS3FullAccess,并单击下一步:标签
    4. 根据实际需要添加标签,并单击下一步:审核
    5. 在审核页面,填写角色名称以及角色描述,并单击创建角色,完成角色创建。
  2. 通过清单创建作业来解冻文件。
    1. 在待迁移Bucket页面,选择管理 > 库存配置
    2. 在库存配置页面,选中已有的清单,并单击通过清单创建作业
      重要 如果配置了清单但未生成第一份报告,则该功能不可用。
    3. 选择区域和清单,并单击下一步
    4. 选择还原,填入要还原的日期,两种套餐只是时间的区别,建议选择标准检索,并单击下一步
      请根据数据总量预估足够的解冻时长,以防迁移期间数据再次变成冻结状态。
    5. 配置其他选项,并单击下一步
      其中描述和优先级保持默认值,填写完成报告目标路径,IAM中选择之前创建的角色,标签可不填。
    6. 确认所填信息正确无误后,单击创建作业
    7. 跳转到批处理操作的任务列表页面,确认新创建的作业处于等待确认运行状态时,选择指定作业,并单击运行作业
      任务状态到达已完成状态时,并不代表文件已解冻成功,需根据标准检索的时间推算解冻完成的时间,预计是5~12小时。您也可以查看解冻文件详情中文件是否为已解冻的状态,更多信息,请参见AWS S3清单批量解冻相关文档。
  3. 解冻完成后,迁移数据到OSS。具体操作,请参见:AWS S3迁移教程

Azure Blob

Azure Blob提供在控制台通过改变Blob层的属性来解冻归档文件,支持批量解冻。Blob层解冻的具体步骤如下:

  1. 在需要解冻的Blob下单击配置,找到Blob访问层选项,修改冷层为热层后保存,此过程称为解冻,可能需要多个小时才能完成。更多信息,请参见Azure Blob解冻相关文档。
    解冻优先级包括高和标准,可在设置Blob层操作中通过可选属性x-ms-rehydrate-priority进行设置。
    • 标准:解冻请求将按其接收顺序处理,最长可能需要15个小时。
    • 高:解冻请求优先于标准请求,对于小于10 GB的对象,可在1小时内完成解冻。
    说明 如果不想要解冻存档的Blob,您可以选择执行复制Blob操作。原始Blob在存档中保持未修改状态,同时会在热层创建新的Blob,然后您可以将新的Blob中的数据迁移到OSS。

    发起解冻请求后,将无法取消。在解冻过程中,x-ms-access-tier blob属性将继续显示为存档,直到解冻完成。要确认解冻状态和进度,可以调用获取Blob 属性以查看x-ms-archive-status和x-ms-rehydrate-priority blob属性。

  2. 解冻完成后,迁移数据到OSS。具体操作,请参见:Azure Blob迁移教程

谷歌Cloud Stroage

谷歌Cloud Stroage提供gsutil工具,通过修改对象的存储类别来解冻归档文件,仅支持指定对象解冻,不支持批量解冻。使用gsutil工具解冻的具体步骤如下:

  1. 请提前下载和安装gsutil工具,并进行身份验证。
  2. 执行gsutil rewrite -s STORAGE_CLASS gs://PATH_TO_OBJECT命令,解冻指定对象。更多信息,请参见谷歌Cloud Stroage解冻相关文档。
    • STORAGE_CLASS表示对象的新存储类别,例如nearline。
    • PATH_TO_OBJECT表示指定要修改存储类别的对象名称,例如pets/dog.png。
  3. 解冻完成后,迁移数据到OSS。具体操作,请参见:谷歌GCP迁移教程

腾讯云COS

COS提供了coscmd工具来解冻归档文件,支持批量解冻。使用coscmd工具解冻的具体步骤如下:

  1. 执行pip install coscmd命令,安装coscmd工具。
  2. 通过命令行工具执行coscmd config -a ak -s sk -b bucket -r region命令,配置、AccessKey ID、AccseeKey Secret、bucket和region。
  3. 执行coscmd restore -r -d 10 -t Expedited examplefolder/命令,解冻指定bucket下的文件。
    • -d用于指定解冻时长,不指定默认解冻时长为7天,此处以解冻时长10天为例介绍。
    • -t用于指定还原文件的优先级,优先级包括加速(极速模式)、标准(标准模式)和批量(批量模式),默认值为标准,此处以加速为例介绍。

    根据选择不同优先级,解冻所产生的费用不同。更多信息,请参见腾讯云COS解冻相关文档。

  4. 解冻完成后,迁移数据到OSS。具体操作,请参见:腾讯云COS迁移教程

华为云OBS

OBS提供了obsutil工具来解冻归档文件,支持批量解冻。使用obsutil工具解冻的具体步骤如下:

  1. 请提前下载和安装obsutil工具。
  2. 解压和运行obsutil工具。
    • Windows平台:解压obsutil工具包后,双击运行obsutil.exe,即可开始使用。
    • Linux或Mac平台:通过tar -xzvf命令解压obsutil工具包后,进入obsutil所在目录,执行chmod 755 obsutil命令,为obsutil增加可执行权限,即可开始使用。
  3. 执行相应命令解冻指定bucket下的文件。如果指定为bucket,则解冻bucket下所有clod文件。更多信息,请参见华为云OBS解冻相关文档。

    Windows平台下,请执行obsutil restore obs://bucket-test/key -r -f -i ak -k sk -e endpoint,Linux或Mac平台下,请执行./obsutil restore obs://bucket-test/key -r -f -i ak -k sk -e endpoint命令。

    • -r(必选)用于按指定的对象名前缀,批量恢复cold存储对象。
    • -f(可选)用于强制操作,不进行询问提示,批量恢复。
    • -v(可选)用于按指定的对象名前缀批量恢复多版本cold存储对象。
    • -j(可选)用于批量恢复cold存储对象的最大并发数。
    • -d(必选)用于指定解冻时长,不指定默认解冻时长为1天,取值范围为1~30,此处以解冻时长10天为例介绍。
    • -t(必选)用于指定还原文件的优先级,优先级包括expedited(极速模式,1~5分钟取回)和standard(标准模式,3~5小时取回),默认值为expedited,此处以加速为例介绍。
  4. 解冻完成后,迁移数据到OSS。具体操作,请参见:华为云OBS迁移教程

百度云BOS

BOS提供了RestoreObject来解冻归档文件,目前仅支持解冻指定文件,不支持批量解冻。解冻文件的具体步骤如下:

  1. 调用RestoreObject接口解冻归档文件。更多信息,请参见百度云BOS RestoreObject接口相关文档。

    请求示例

    x-bce-restore-days用于指定解冻后状态的持续时间,默认解冻持续天数为7天,取值范围为0~30。x-bce-restore-tier用于指定还原文件的优先级,优先级包括Expedited和Standard。
    POST /ObjectName?restore HTTP/1.1
    Host: <BucketName>.bj.bcebos.com
    Date: <Date>
    Content-Length: 0
    Authorization: <Authorization_String>
    x-bce-restore-tier:Expedited/Standard
    x-bce-restore-days:3
    响应示例
    HTTP/1.1 200 OK
    x-bce-request-id: 4db4b34d-653d-4d9a-b49b-3049ca786409
    Date: Wed, 31 May 2018 08:34:40 GMT
    Server: BceBos
  2. 解冻完成后,迁移数据到OSS。具体操作,请参见:百度云BOS迁移教程

金山云KS3

KS3提供了RestoreObject来解冻归档文件,目前仅支持解冻指定文件,不支持批量解冻。解冻文件的具体步骤如下:

  1. 调用RestoreObject接口解冻归档文件。
    请求示例
    POST /{ObjectKey}?restore HTTP/1.1
    Host: {BucketName}.{endpoint}
    Date: {date}
    Authorization: {SignatureValue}
    说明
    • 解冻状态默认持续24小时,24小时内再次调用Restore Object接口则解冻状态会自动延长24小时,最多可延长7天。
    • 如果是对归档Object第一次调用RestoreObject接口,则返回202,如果已经成功调用过RestoreObject接口,且Object仍处于解冻中,再次调用时返回409,错误码为RestoreAlreadyInProgress,表示服务端正在执行解冻操作,用户只需要等待解冻完成,最长等待时间10分钟,如果已经成功调用过RestoreObject接口,且服务端解冻已经完成,再次调用时返回200,且会将归档文件的可下载时间延长一天,最多延长7天。
    • 对一个处于冷冻状态的Object执行Restore操作,会产生数据取回费用,每次调用Restore Object接口,都会产生请求数费用。关于计费的更多信息,请参见KS3解冻相关文档。
    响应示例
    HTTP/1.1 200 OK
    Server: Tengine
    Date: Fri, 26 Dec 2018 06:40:02 GMT
    Content-Length: 0
    Connection: keep-alive
    X-Application-Context: application
    x-kss-request-id: 1d147c34a9d542aa8dc7f0f70d3db893
    x-kss-storage-class: ARCHIVE
  2. 解冻完成后,迁移数据到OSS。具体操作,请参见:金山云KS3迁移教程

七牛云

七牛云提供了批量解冻归档文件的方法。具体步骤如下:

  1. 调用解冻归档存储文件接口批量解冻文件。更多信息,请参见七牛解冻相关文档。

    请求示例

    EncodedEntryURI格式为<Bucket>:<Key>,Base64编码后的地址。FreezeAfterDays用于指定解冻有效时长,取值范围为1~7。
    POST /batch HTTP/1.1
    Host:           rs.qbox.me
    Content-Type:   application/x-www-form-urlencoded
    Authorization:  Qiniu <AccessToken>
    
    op=/restoreAr/<EncodedEntryURI>/freezeAfterDays/<FreezeAfterDays>&op=/restoreAr/<EncodedEntryURI>/freezeAfterDays/<FreezeAfterDays>&...
    响应示例
    HTTP/1.1 200 OK
    Content-Type: application/json
    Cache-Control: no-store
  2. 解冻完成后,迁移数据到OSS。具体操作,请参见七牛云迁移教程

Ucloud US3

Ucloud US3提供了us3cli工具来解冻文件,支持批量解冻。使用us3cli工具解冻的具体步骤如下:

  1. 请提前下载和安装us3cli工具,并配置可执行权限。
  2. 通过命令行工具执行./us3cli config config1 --accesskey ak --secretkey --endpoint endpoint命令,配置AcseeKey ID、AccessKey Secret和endpoint。
  3. 执行./us3cli restore us3://bucket/dir -r --parallel 30命令,解冻bucket下指定目录中所有文件并指定并发数。更多信息,请参见US3常用命令中的restore相关内容。
    • -r用于指定递归文件夹中的所有文件及子目录下所有文件。
    • --parallel用于指定批量激活并发数,默认值为10,此处以30为例介绍。
  4. 解冻完成后,迁移数据到OSS。具体操作,请参见:Ucloud US3迁移教程