You must restore an Archive or Cold Archive object before you can read it. This topic describes how to restore an Archive or Cold Archive object.
Usage notes
- When you use packaging tools such as Webpack and Browserify, install OSS SDK for Browser.js by running the npm install ali-oss command.
- In most cases, OSS SDK for Browser.js is used in browsers. To prevent your AccessKey pair from being exposed, we recommend that you use temporary access credentials obtained from Security Token Service (STS) to access OSS.
For more information about how to use STS, see Use temporary credentials provided by STS to access OSS in OSS Developer Guide. You can call the AssumeRole operation or use STS SDKs for various programming languages to obtain temporary access credentials. Temporary access credentials include a security token and a temporary AccessKey pair that consists of an AccessKey ID and an AccessKey secret.
Restoration
If you want to read an Archive object or a Cold Archive object, you must restore the object in advance. It takes several minutes to restore an Archive object, and it takes several hours to restore a Cold Archive object based on different restoration priorities. The actual restoration time prevails.
- By default, an Archive object is in the frozen state.
- After you submit a request to restore the object, the object enters the restoring state.
- After the Object Storage Service (OSS) server completes the restoration task, the object enters the restored state and can be read.
- Archive objects
For Archive objects, the restored state lasts 24 hours by default. During the 24 hours, you can call RestoreObject again to extend the duration of the restored state for another 24 hours. During one restoration process, you can call RestoreObject for up to seven times to extend the duration of the restored state of the object. In other words, an object can remain in the restored state for up to seven days. You can also configure the duration of the restored state in days by calling RestoreObject. You can specify a duration of up to seven days.
- Cold Archive objectsFor Cold Archive objects, you can specify the duration of the restored state and the restoration priority. The duration of the restored state must be at least one day and at most 365 days. The time required to restore a Cold Archive object to the readable state is determined based on the restoration priority of the object:
- Expedited: The object is restored within one hour.
- Standard: The object is restored within two to five hours. If the JobParameters parameter is not passed in, the default restoration mode is Standard.
- Bulk: The object is restored within five to twelve hours.
The reference value for the amounts of retrieved data for an Alibaba Cloud account in a region is an average of 500 objects per second. The total retrieved data for the preceding priorities ranges from 100 TB to 120 TB per day.
- Archive objects
- After the duration of the restored state expires, the object returns to the frozen state.
Restore an Archive object
The following sample code provides an example on how to restore an Archive object:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<button id='upload'>Upload</button>
<button id='restore'>Restore Object</button>
<!-- Import the SDK file -->
<script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.16.0.min.js"></script>
<script type="text/javascript">
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourRegion',
// Specify the temporary AccessKey pair obtained from STS. An AccessKey pair consists of an AccessKey ID and an AccessKey secret.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Specify the security token that you obtained from STS.
stsToken: 'yourSecurityToken',
// Specify the name of the bucket. Example: examplebucket.
bucket: "examplebucket",
});
const upload = document.getElementById('upload')
const restore = document.getElementById('restore')
// Specify the object to upload.
const file = new Blob(['examplecontent'])
// Specify the name of the object to upload to the bucket.
const fileName = 'example.txt'
// Upload the object and specify its storage class as Archive.
upload.addEventListener('click', () => {
client.put(fileName, file, {
headers: {
'x-oss-storage-class': 'Archive'
}
}).then(r => console.log(r))
})
// Restore an Archive object.
restore.addEventListener('click', () => {
client.restore(fileName).then(r => console.log(r))
})
</script>
</body>
</html>
Restore a Cold Archive object
The following sample code provides an example on how to restore a Cold Archive object:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<button id='upload'>Upload</button>
<button id='restore'>Restore Object</button>
<!-- Import the SDK file -->
<script type="text/javascript" src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.16.0.min.js"></script>
<script type="text/javascript">
const client = new OSS({
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou.
region: 'yourRegion',
// Specify the temporary AccessKey pair obtained from STS. An AccessKey pair consists of an AccessKey ID and an AccessKey secret.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Specify the security token that you obtained from STS.
stsToken: 'yourSecurityToken',
// Specify the name of the bucket. Example: examplebucket.
bucket: "examplebucket",
});
const upload = document.getElementById('upload')
const restore = document.getElementById('restore')
// Specify the object to upload.
const file = new Blob(['examplecontent'])
// Specify the name of the object to upload to the bucket.
const fileName = 'example.txt'
// Upload the object and specify its storage class as Cold Archive.
upload.addEventListener('click', () => {
client.put(fileName, file, {
headers: {
'x-oss-storage-class': 'ColdArchive'
}
}).then(r => console.log(r))
})
// type specifies the storage class of the object as Cold Archive.
// JobParameters specifies the restoration priority of the object.
// Expedited: The object is restored within 1 hour.
// Standard: The object is restored within 2 to 5 hours. If the JobParameters element is not passed in, the default restoration priority is Standard.
// Bulk: The object is restored within 5 to 12 hours.
// Days specifies the duration in which the object can remain in the restored state. Unit: days. Valid values: 1 to 7.
// Restore the Cold Archive object.
restore.addEventListener('click', () => {
client.restore(fileName,{type:'ColdArchive',JobParameters:'Standard',Days:2}).then(r => console.log(r))
})
</script>
</body>
</html>
References
- For more information about the complete sample code that is used to restore an Archive or Cold Archive object, visit GitHub.
- For more information about the API operation that you can call to restore an Archive or Cold Archive object, see RestoreObject.