You need to enable JavaScript to run this app.
导航

恢复对象(Node.js SDK)

最近更新时间2024.02.04 18:31:10

首次发布时间2023.12.19 18:47:29

对归档对象和冷归档对象进行恢复,恢复之后可以通过下载对象接口获取到对象。通过参数可以指定不同的取回方式。

注意事项

  • 第一次调用 RestoreObject 接口,返回 202。如果文件正在恢复中,再次调用 RestoreObject 接口,会返回 409 错误。如果对象已完成恢复,再次调用 RestoreObject 接口返回 200 OK。
  • 对于开启多版本的桶,可以通过指定 VersionId 恢复指定版本的对象,如果未指定 VersionId,默认恢复当前对象。

示例代码

以下代码用于恢复对象。

// 导入 SDK, 当 TOS Node.JS SDK 版本小于 2.5.2 请把下方 TosClient 改成 TOS 导入
import { TosClient, TosClientError, TosServerError, TierType } from '@volcengine/tos-sdk';

// 创建客户端
const client = new TosClient({
  accessKeyId: process.env['TOS_ACCESS_KEY'],
  accessKeySecret: process.env['TOS_SECRET_KEY'],
  region: "Provide your region", // 填写 Bucket 所在地域。以华北2(北京)为例,则 "Provide your region" 填写为 cn-beijing。
  endpoint: "Provide your endpoint", // 填写域名地址
});

function handleError(error) {
  if (error instanceof TosClientError) {
    console.log('Client Err Msg:', error.message);
    console.log('Client Err Stack:', error.stack);
  } else if (error instanceof TosServerError) {
    console.log('Request ID:', error.requestId);
    console.log('Response Status Code:', error.statusCode);
    console.log('Response Header:', error.headers);
    console.log('Response Err Code:', error.code);
    console.log('Response Err Msg:', error.message);
  } else {
    console.log('unexpected exception, message: ', error);
  }
}

async function main() {
  try {
    const bucketName = 'node-sdk-test-bucket';
    // 指定的 objectKey
    const objectKey = '*** Provide your object key ***';

    const { requestId } = await client.restoreObject({
      bucket: bucketName,
      key: objectKey,
      days: 1,
      restoreJobParameters: {
        Tier: TierType.TierStandard,
      },
    });
    console.log('restoreObject Request ID:', requestId);
  } catch (error) {
    handleError(error);
  }
}

main();

相关文档

关于恢复对象接口的详细介绍,请参见 RestoreObject