使用场景
对于存储类别为归档存储或深度归档存储的对象,用户需要先恢复才能下载、通过对象URL访问对象。
数据恢复时间和收费详情请参见产品价格详情。
注意事项
- 数据恢复后,会产生一个标准存储类别的对象副本,即对象同时存在标准存储类别的对象副本和归档存储或深度归档存储类别的对象。归档存储或深度归档存储对象恢复完成时,对象的恢复状态显示“已恢复”,生成的标准存储类型的对象副本不会在桶中展示。
- 开启多版本控制功能后,不指定versionId则默认恢复对象的当前版本,您可以通过指定versionId的方式来恢复对象的指定版本。
- 如果对象是第一次调用RestoreObject接口,会返回202,表示服务端已收到请求。如果已经成功调用过RestoreObject接口,且Object已完成恢复,再次调用时返回200 OK。
约束限制
- 归档和深度归档对象恢复的有效期时长上限为30天。
- 归档存储或深度归档存储的对象正在恢复的过程中,不支持修改恢复方式,不允许暂停或删除恢复任务。
- 对象的恢复状态为恢复中时,对象不能再次恢复,接口会报错409,请对象恢复完成后再进行恢复操作。
- 恢复中的对象不能加入批量恢复文件中。
对象恢复方式及耗时
OBS提供加急和标准两种不同的恢复方式。
对于深度归档对象,大批量恢复建议使用标准恢复,且对象最终恢复时间受对象大小以及取回数据量的影响。
存储类别 |
恢复方式 |
耗时 |
归档存储 |
加急 |
1~5 min |
归档存储 |
标准 |
3~5 h |
深度归档存储 |
加急 |
3~5 h |
深度归档存储 |
标准 |
5~12 h |
费用说明
表1 对象恢复费用说明
操作名称 |
产生费用类别 |
费用说明 |
付费方式 |
对象恢复 |
请求费用 |
按恢复成功的对象数计算请求次数,产生请求费用。
恢复成功N个对象,记录N次请求。
低频访问存储无需手动触发恢复,系统会为您自动触发恢复操作,与归档、深度归档存储相同需要收取恢复请求费用。 |
按需计费 |
数据恢复费用(流量费用) |
数据恢复的流量费用,按恢复方式(OBS支持加急和标准两种恢复方式)和文件大小计费。如果文件在恢复有效期内,不会再次产生恢复流量费用。 |
按需计费 |
公网流出流量(仅公网访问对象时收取) |
如果恢复后使用公网访问对象,还会按照文件大小计算公网流出流量费用。 |
按需计费
资源包(公网流出流量包) |
临时文件存储费用 |
数据恢复后,会产生一个标准存储类型的对象副本,即对象同时存在标准存储类型的对象副本和原有的归档存储或深度归档存储对象。恢复对象时,会一次性收取这份标准存储数据的存储费用。恢复有效期到期后标准存储类型的对象副本会自动删除。
低频访问存储数据恢复和归档存储直读功能不产生对象副本,不会产生标准存储的存储费用。 |
按需计费 |
恢复对象原理介绍
恢复流程
归档和深度归档存储恢复流程一致,此处以具体时间为例说明恢复流程,步骤如下:
- 初始阶段对象处于“未恢复”状态。
- 7月1日,当您提交首次恢复请求后,对象进入“恢复中”状态。
- 7月1日,服务端完成恢复操作,对象进入“已恢复”状态,此时您可读取对象。假设首次有效期为10天,那么恢复过期时间为7月10日,该日期之前对象一直处于“已恢复”状态。
- 对象处于“已恢复”状态时,如果您再次发起恢复操作,例如7月5日再次恢复,单次有效期设置为10天,那么恢复过期时间变更为7月15日,有效期总长变为15天。
- 恢复状态到期后,对象会自动回归“未恢复”状态,且原有存储类别不受影响。
恢复有效期叠加规则
当您在A时间点,发起单次有效期时长为N天的恢复操作,恢复过期时间为A+N。然后您在B时间点(B在A+N之前),再次发起单次有效期时长为M天的恢复操作,那么:
- 如果B+M晚于A+N,那么恢复过期时间变更为B+M,有效期总长为(B-A)+M,如图1所示。
图1 恢复有效期叠加规则
- 如果B+M早于A+N,那么第二次发起的恢复操作会报错失败。
使用方式
OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式恢复归档存储对象或深度归档存储对象。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表中,单击待操作的桶,进入“对象”页面。
- 选中待恢复的文件,并单击右侧的“恢复”。
也可以选中多个文件,单击文件列表上方的“更多>恢复”恢复多个文件。
图2 恢复对象
- 恢复对象需要设置对象的有效期和恢复速率,参数解释如下表所示:
表2 恢复对象
参数 |
说明 |
有效期 |
对象恢复后,保持为“已恢复”状态的时长,从对象恢复完成开始计时。有效期时长可设置1-30天的整数。系统默认有效期为30天。
例如:恢复对象时,有效期设置为20天,则从对象恢复成功后开始算起,20天后,该对象则会从“已恢复”状态变成“未恢复”状态。 |
速率 |
对象的恢复速度。
- 加急:可在1-5分钟内恢复归档存储数据,3-5小时内恢复深度归档存储数据。
- 标准:可在3-5小时内恢复归档存储数据,5-12小时内恢复深度归档存储数据。
|
- 单击“确定”。
系统每天会在UTC 00:00点检查一次文件恢复情况,过期时间是根据最近一次系统检查时间开始计算的。
使用图形化工具OBS Browser+
- 登录OBS Browser+。
- 单击待恢复文件或文件夹所在的桶,进入对象列表页面。
- 选中待恢复文件或文件夹,单击“更多”->“恢复对象”,如下图3所示。
图3 恢复对象
恢复对象需要设置对象的有效期和恢复速率,参数解释如表3所示:
表3 恢复对象
参数 |
说明 |
对象名 |
恢复的对象名或路径名。 |
有效期 |
对象恢复后,保持为“已恢复”状态的时间。从对象恢复完成开始计时。有效期时间可设置1-30天的整数。系统默认有效期为30天。
例如:恢复对象时,有效期设置为20天,则从对象恢复成功后算起20天后,该对象又会从“已恢复”状态变成“未恢复”状态。 |
速率 |
对象的恢复速度。
- 加急:可在1-5分钟内恢复小于250MB的数据。
- 标准:可在3-5小时内恢复所有归档数据。
|
- 单击“确定”,确认恢复归档存储的文件或文件夹。
文件或文件夹恢复状态可单击对象右侧的
图标,在“属性”页面查看“恢复状态”。文件恢复成功后才能对该文件进行下载操作。
使用命令行工具obsutil
命令结构:
- Windows操作系统
- 恢复对象
obsutil restore obs://bucket/key [-d=1] [-t=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx]
- 批量恢复对象
obsutil restore obs://bucket[/key] -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx]
- 批量恢复指定目录下的所有对象
obsutil restore obs://bucket/folder/ -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx]
- macOS/Linux操作系统
- 恢复对象
./obsutil restore obs://bucket/key [-d=1] [-t=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx]
- 批量恢复对象
./obsutil restore obs://bucket[/key] -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx]
运行示例:
- 以Windows操作系统为例,运行obsutil restore obs://bucket-test/key,恢复单个存储类型为cold的对象。
obsutil restore obs://bucket-test/key
Start at 2024-09-30 08:56:17.9537365 +0000 UTC
Start to restore object [key] in the bucket [bucket-test] successfully, cost [252] ms, request id [0000019242250F754015F23EE0B7876E]
- 以Windows操作系统为例,运行obsutil restore obs://bucket-test -r -f,批量恢复桶中所有的存储类型为cold的对象。
obsutil restore obs://bucket-test -r -f
Start at 2024-09-30 08:57:11.3565648 +0000 UTC
[================================================] 100.00% 3s
Succeed count: 12 Failed count: 0
Metrics [max cost:264 ms, min cost:54 ms, average cost:119.33 ms, average tps:19.70]
Task id: 96f104ee-d0bf-40ff-95dd-31dec0d8f4f4
参数说明:
参数 |
约束 |
描述 |
bucket |
必选 |
桶名。 |
key |
恢复单个存储类型为cold的对象时必选
批量恢复存储类型为cold的对象时可选 |
待恢复的对象名,或批量恢复的对象名前缀。
说明:
批量恢复时,如果该值为空,则表示恢复桶内所有存储类型为cold的对象。
|
d |
附加参数,可选 |
存储类型为cold的对象恢复后的保存时间,单位:天,取值范围是1~30。默认为1。 |
t |
附加参数,可选 |
恢复选项。支持的值:
说明:
- expedited表示快速恢复对象,归档存储恢复耗时1~5 min,深度归档(受限公测)存储恢复约耗时3~5 h。
- standard表示标准恢复对象,归档存储恢复耗时3~5 h,深度归档(受限公测)存储恢复约耗时5~12 h。
- 不设置该选项时,默认使用expedited模式。
|
versionId |
附加参数,恢复单个cold存储对象时可选 |
待恢复cold存储对象的版本号。 |
fs |
附加参数,可选 |
是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。
注意:
- 该列举方式会因为目录结构,耗时会差别很大。
- 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。
- Util 5.5.12版本及以上支持该参数。
|
fr |
附加参数,恢复单个cold存储对象时可选 |
恢复单个cold存储对象时生成结果清单文件。 |
f |
附加参数,批量恢复cold存储对象时可选 |
强制操作,不进行询问提示。 |
r |
附加参数,批量恢复cold存储对象时必选 |
按指定的对象名前缀批量恢复cold存储对象。 |
v |
附加参数,批量恢复cold存储对象时可选 |
按指定的对象名前缀批量恢复多版本cold存储对象。 |
o |
附加参数,可选 |
生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果和失败结果两个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。
|
j |
附加参数,批量恢复cold存储对象时可选 |
批量恢复cold存储对象的最大并发数,默认为配置文件中的defaultJobs。
|
config |
附加参数,可选 |
运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 |
e |
附加参数,可选 |
指定终端节点。 |
i |
附加参数,可选 |
指定用户的AK。 |
k |
附加参数,可选 |
指定用户的SK。 |
token |
附加参数,可选 |
指定用户的securitytoken。 |
响应结果:
字段名 |
描述 |
Parallel |
请求中的-p参数。 |
Jobs |
请求中的-j参数。 |
Threshold |
请求中的-threshold参数。 |
PartSize |
请求中的-ps参数。 |
Exclude |
请求中的-exclude参数。 |
Include |
请求中的-include参数。 |
TimeRange |
请求中的-timeRange参数。 |
VerifyLength |
请求中的-vlength参数。 |
VerifyMd5 |
请求中的-vmd5参数。 |
CheckpointDir |
请求中的-cpd参数。 |
OutputDir |
请求中的-o参数。 |
ArcDir |
请求中的-arcDir参数。 |
Succeed count |
成功的任务数。 |
Failed count |
失败的任务数。 |
Skip count |
增量上传/下载/复制、同步上传/下载/复制跳过的任务数。
|
Warning count |
执行完成但包含警告的任务数。
说明:
- 产生警告的任务可能是失败的也可能是成功的,需要根据成功或失败的结果清单进一步判断。
- 产生警告的任务数与成功/失败任务数是相互独立的,总任务数仍是成功的任务数+失败的任务数。
|
Succeed bytes |
上传/下载成功的字节数。 |
max cost |
所有任务中的最长耗时,单位:毫秒。 |
min cost |
所有任务中的最短耗时,单位:毫秒。 |
average cost |
平均耗时,单位:毫秒。 |
average tps |
平均每秒的任务完成个数。 |
Task id |
每次运行的唯一标识号,用于查找批量任务生成的结果清单文件。 |
如何查看对象的恢复状态?
OBS支持使用控制台、OBS Browser+、API、SDK四种方式查询对象的恢复状态。
控制台:单击对象,进入对象详情页,如图4所示,在基本信息页签即可查看对象恢复状态。
图4 使用控制台查看对象恢复状态
OBS Browser+:单击对象右侧的“
”图标,然后单击“属性”选项,如图5所示,在弹窗中查看对象恢复状态。
图5 使用Browser+查看对象恢复状态
API:调用获取对象元数据接口,查看接口响应头“x-obs-restore”,即可获取对象恢复状态。
SDK:调用各语言SDK的获取对象元数据接口,查看对应接口的返回参数,即可获取对象恢复状态。