You must restore a Cold object before you can download it, access it with a URL, or configure its ACL or metadata.
OBS provides two restore options: standard and expedited.
To restore a large number of objects from the Deep Archive storage class, you are advised to use the standard restore. The restore time spent depends on the object size restored.
Storage Class | Restore Option | Time Required |
|---|---|---|
Cold | Expedited | 1 to 5 minutes |
Cold | Standard | 3 to 5 hours |
Cold | Bulk | 5 to 12 hours |
Object Restore Process
The following gives an object restore example:
Cumulative Validity Period Rule
If you initiate a restore request for an object at time A and set the validity period to N days, the restore expiration time will be A + N. Later, you make another restore request for the object at time B (B is earlier than A + N) and set the validity period to M days:
Figure 1 Cumulative validity periods

You have the obs:object:RestoreObject permission.
You can use OBS Console, APIs, SDKs, or obsutil to restore Cold or Deep Archive objects.
You can select multiple files and click Restore above the file list to batch restore the files.
You can select multiple files and choose More > Restore above the file list to batch restore them.
Objects that are being restored cannot be added for batch restore.
Figure 2 Restoring an object

Parameter | Description |
|---|---|
Validity Period | How long the object will remain in the Restored state. It starts once the object is restored. The value is an integer ranging from 1 to 30 (days). The default value is 30. For example, if you set Validity Period to 20 when restoring an object, 20 days after the object is successfully restored, its status will change from Restored to Unrestored. |
Speed | How fast objects will be restored.
|
The system checks the file restore status at UTC 00:00 every day. The system starts counting down the expiration time from the time when the latest check is complete.
For details, see "Restoring Cold Objects" in the API Reference Guide.
Java | C | Go | Python |
|---|---|---|---|
See "Restoring a Cold Object (SDK for Java)" in the Java SDK Developer Guide. | See "Restoring a Cold Object (SDK for C)" in the C SDK Developer Guide. | See "Restoring a Cold Object (SDK for Go)" in the Go SDK Developer Guide. | See "Restoring a Cold Object (SDK for Python)" in the Python SDK Developer Guide. |
See section "Restoring Objects from the Cold Storage" in the Object Storage Service Tools Guide (obsutil).
Within the validity period of a restored object, you can restore the object again. The validity period is then extended because it will start again when the latest restore is complete.
If a restored object is restored again, its expiration time should be later than the time set for the previous restore. Assume that an object is restored on January 1 and will expire 30 days later (on January 30). If the object is restored again on January 10 and is made to be expired earlier than January 30 (fewer than 20 days), this restore action is considered invalid.