使用场景
对于存储类别为归档存储或深度归档存储的对象,用户需要先恢复才能下载、通过对象URL访问对象。
数据恢复时间和收费详情请参见产品价格详情。
在对象有效期内,用户可以重复做对象恢复操作。对象的有效期会以最新一次的恢复完成时间为开始算起,以此可以达到延长对象有效期的目的。
重复恢复对象时,其过期时间应该在上一次恢复对象的过期时间之后。例如,1月1号恢复对象并设置30天后过期,过期时间是1月30号。1月10号时重复恢复对象,过期时间设置如果早于30号(天数小于20天),那么此恢复操作是非法的。
注意事项
- 归档存储或深度归档存储的对象正在恢复的过程中,不支持修改恢复方式,不允许暂停或删除恢复任务。
- 数据恢复后,会产生一个标准存储类别的对象副本,即对象同时存在标准存储类别的对象副本和归档存储或深度归档存储类别的对象。归档存储或深度归档存储对象恢复完成时,对象的恢复状态显示“已恢复”,生成的标准存储类型的对象副本不会在桶中展示。
- 在恢复的有效期内,会同时收取这份数据在标准存储和归档存储或深度归档存储中的存储费用。恢复有效期到期后标准存储类别的对象副本会自动删除。
- 开启多版本控制功能后,如果对象的各个版本对应不同的存储类型。默认恢复对象的当前版本,请通过指定versionId的方式来恢复对象的指定版本。
- 对象的恢复状态为恢复中时,对象不能再次恢复,接口会报错409,请对象恢复完成后再进行恢复操作。
- 如果对象是第一次调用RestoreObject接口,会返回202,表示服务端已收到请求。如果已经成功调用过RestoreObject接口,且Object已完成恢复,再次调用时返回200 OK。
对象恢复方式及耗时
OBS提供加急和标准两种不同的恢复方式。
存储类别 |
恢复方式 |
耗时 |
归档存储 |
加急 |
1~5 min |
归档存储 |
标准 |
3~5 h |
深度归档存储 |
加急 |
3~5 h |
深度归档存储 |
标准 |
5~12 h |
对于深度归档对象,大批量恢复建议使用标准恢复,且对象最终恢复时间受对象大小以及取回数据量的影响。
使用方式
OBS支持通过控制台、API、SDK、OBS Browser+、obsutil方式恢复归档存储对象或深度归档存储对象。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 选中待恢复的文件,并单击右侧的“恢复”。系统弹出如图1所示对话框。
也可以选中多个文件,单击文件列表上方的“更多>恢复”恢复多个文件。
图1 恢复对象
- 恢复对象需要设置对象的有效期和恢复速率,参数解释如下表所示:
表1 恢复对象
参数 |
说明 |
有效期 |
对象恢复后,保持为“已恢复”状态的时长,从对象恢复完成开始计时。有效期时长可设置1-30天的整数。系统默认有效期为30天。
例如:恢复对象时,有效期设置为20天,则从对象恢复成功后开始算起,20天后,该对象则会从“已恢复”状态变成“未恢复”状态。 |
速率 |
对象的恢复速度。
- 加急:可在1-5分钟内恢复归档存储数据,3-5小时内恢复深度归档存储数据。
- 标准:可在3-5小时内恢复归档存储数据,5-12小时内恢复深度归档存储数据。
|
- 单击“确定”。
系统每天会在UTC 00:00点检查一次文件恢复情况,过期时间是根据最近一次系统检查时间开始计算的。
使用图形化工具OBS Browser+
- 登录OBS Browser+。
- 单击待恢复文件所在的桶,进入对象列表页面。
- 选中待恢复文件,单击“更多”->“恢复对象”,如下图2所示。
图2 恢复对象
恢复对象需要设置对象的有效期和恢复速率,参数解释如表2所示:
表2 恢复对象
参数 |
说明 |
对象名 |
恢复的对象名。 |
有效期 |
对象恢复后,保持为“已恢复”状态的时间。从对象恢复完成开始计时。有效期时间可设置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所示,在基本信息页签即可查看对象恢复状态。
图3 使用控制台查看对象恢复状态
OBS Browser+:单击对象右侧的“”图标,然后单击“属性”选项,如图5所示,在弹窗中查看对象恢复状态。
图4 使用Browser+查看对象恢复状态
API:调用获取对象元数据接口,查看接口响应头“x-obs-restore”,即可获取对象恢复状态。
SDK:调用各语言SDK的获取对象元数据接口,查看对应接口的返回参数,即可获取对象恢复状态。