すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトの解凍 (Harmony SDK)

最終更新日:Nov 30, 2025

アーカイブ、コールドアーカイブ、ディープコールドアーカイブのストレージクラスにあるオブジェクトは、読み取る前に解凍する必要があります。オブジェクトが解凍されると、オブジェクトの一時的なコピーが作成されます。元のアーカイブ済みオブジェクトは保持されます。解凍状態の保持期間が終了すると、一時的なコピーは自動的に削除されます。このトピックでは、OSS Harmony ソフトウェア開発キット (SDK) を使用して、アーカイブ、コールドアーカイブ、ディープコールドアーカイブのオブジェクトを解凍する方法について説明します。

注意事項

  • アーカイブ、コールドアーカイブ、ディープコールドアーカイブのストレージクラスのオブジェクトのみが RestoreObject メソッドをサポートします。

  • OSS がサポートするリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • オブジェクトを解凍するには、oss:RestoreObject 権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。

サンプルコード

次のコードを使用して、アーカイブ、コールドアーカイブ、またはディープコールドアーカイブのオブジェクトを解凍します。

import Client, { RequestError } from '@aliyun/oss';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // STS の一時的なアクセス認証情報の Access Key ID と置き換えます。
  accessKeyId: 'yourAccessKeyId',
  // STS の一時的なアクセス認証情報の Access Key Secret と置き換えます。
  accessKeySecret: 'yourAccessKeySecret',
  // STS の一時的なアクセス認証情報の Security Token と置き換えます。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、Region を oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// バケットの名前を指定します。 実際のバケット名に置き換えてください。
const bucket = 'yourBucketName';
// 解凍するオブジェクトの名前を指定します。 実際のオブジェクト名に置き換えてください。
const key = 'yourObjectName';

/**
 * アーカイブ済みオブジェクトを解凍します。
 * restoreObject メソッドを使用して、アーカイブまたはコールドアーカイブのストレージクラスからオブジェクトを解凍し、読み取り可能な状態にします。
 */
const restoreObject = async () => {
  try {
    // restoreObject メソッドを呼び出して、指定されたバケット内のアーカイブ済みオブジェクトを解凍します。
    const res = await client.restoreObject({
      bucket, // バケットの名前。
      key,    // オブジェクトの名前。
      restoreRequest: {
        days: 2, // 解凍されたオブジェクトを有効にしておく日数。
      },
    });

    // 解凍結果を出力します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中に発生した例外をキャッチします。
    if (err instanceof RequestError) {
      // エラーが既知のタイプである場合は、エラーコード、エラーメッセージ、リクエスト ID、ステータスコード、EC コードを出力します。
      console.log('code: ', err.code); // エラーコード。
      console.log('message: ', err.message); // エラーメッセージ。
      console.log('requestId: ', err.requestId); // リクエスト ID。
      console.log('status: ', err.status); // HTTP ステータスコード。
      console.log('ec: ', err.ec); // エラーコード。
    } else {
      // その他の不明なタイプのエラーを出力します。
      console.log('unknown error: ', err);
    }
  }
};

// restoreObject 関数を呼び出して、アーカイブ済みオブジェクトを解凍します。
restoreObject();

関連ドキュメント