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

Object Storage Service:オブジェクトメタデータの管理

最終更新日:Mar 19, 2025

このトピックでは、Harmony 用 Object Storage Service (OSS) SDK を使用してオブジェクトメタデータを構成およびクエリする方法について説明します。

使用上の注意

オブジェクトのアップロード時にオブジェクトメタデータを構成する

次のサンプルコードは、オブジェクトのアップロード時にオブジェクトのアクセス制御リスト (ACL) を公開読み取りに設定する方法の例を示しています。

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

// OSSClient インスタンスを作成します。
const client = new Client({
  // Security Token Service (STS) から取得した AccessKey ID を指定します。
  accessKeyId: 'yourAccessKeyId',
  // STS から取得した AccessKey シークレットを指定します。
  accessKeySecret: 'yourAccessKeySecret',
  // STS から取得したセキュリティトークンを指定します。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

const bucket = 'yourBucketName'; // バケットの名前を指定します。

const key='yourObjectName '; // オブジェクトの名前を指定します。

const putObject = async () => {
  try {
    // putObject メソッドを使用して、指定されたバケット内のオブジェクトにデータをアップロードし、パラメーターを渡します。
    const res = await client.putObject({
      bucket, // バケットの名前を指定します。
      key, // オブジェクトの名前を指定します。
      data: 'hello world' // アップロードするデータを指定します。この例では、単純な文字列がアップロードされます。
      objectAcl: EObjectAcl.PRIVATE
    });

    // オブジェクトのアップロード操作の結果を表示します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中の例外をキャプチャします。
    if (err instanceof RequestError) {
      // 既知の種類のエラーが存在する場合は、エラーコード、エラーメッセージ、リクエスト ID、HTTP ステータスコード、EC などの情報を表示します。
      console.log('code: ', err.code);
      console.log('message: ', err.message);
      console.log('requestId: ', err.requestId);
      console.log('status: ', err.status);
      console.log('ec: ', err.ec);
    } else {
      // その他の不明な種類のエラーを表示します。
      console.log('unknown error: ', err);
    }
  }
}

// putObject 関数を呼び出して、オブジェクトのアップロード操作を実行します。
putObject();

オブジェクトメタデータをクエリする

HeadObject メソッドを使用してオブジェクトのすべてのメタデータをクエリする

次のサンプルコードは、HeadObject メソッドを使用してオブジェクトのすべてのメタデータをクエリする方法の例を示しています。

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

// OSSClient インスタンスを作成します。
const client = new Client({
  // STS から取得した AccessKey ID を指定します。
  accessKeyId: 'yourAccessKeyId',
  // STS から取得した AccessKey シークレットを指定します。
  accessKeySecret: 'yourAccessKeySecret',
  // STS から取得したセキュリティトークンを指定します。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// バケットの名前を指定します。
const bucket = 'yourBucketName';
// オブジェクトの名前を指定します。
const key = 'yourObjectName';

/**
 * オブジェクトのメタデータをクエリします。
 * HeadObject メソッドを使用して、オブジェクトをダウンロードせずにオブジェクトのメタデータをクエリします。
 */
const headObject = async () => {
  try {
    // HeadObject メソッドを使用して、オブジェクトのメタデータをクエリします。
    const res = await client.headObject({
      bucket, // バケットの名前を指定します。
      key, // オブジェクトの名前を指定します。
    });

    // オブジェクトメタデータを表示します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中の例外をキャプチャします。
    if (err instanceof RequestError) {
      // 既知の種類のエラーが存在する場合は、エラーコード、エラーメッセージ、リクエスト ID、HTTP ステータスコード、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); // EC
    } else {
      // その他の不明な種類のエラーを表示します。
      console.log('unknown error: ', err);
    }
  }
};

// headObject 関数を呼び出して、オブジェクトメタデータをクエリします。
headObject();

GetObjectMeta メソッドを使用してオブジェクトの部分メタデータをクエリする

説明

GetObjectMeta メソッドを使用すると、返されるコンテンツの長さ (ContentLength)、エンティティタグ (ETag)、最終更新時刻 (LastModified)、最終アクセス時刻 (LastAccessTime)、バージョン ID (VersionId)、CRC-64 ハッシュ (HashCRC64) など、オブジェクトの部分メタデータのみをクエリできます。

次のサンプルコードは、GetObjectMeta メソッドを使用してオブジェクトの部分メタデータをクエリする方法の例を示しています。

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

// OSSClient インスタンスを作成します。
const client = new Client({
  // STS から取得した AccessKey ID を指定します。
  accessKeyId: 'yourAccessKeyId',
  // STS から取得した AccessKey シークレットを指定します。
  accessKeySecret: 'yourAccessKeySecret',
  // STS から取得したセキュリティトークンを指定します。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// バケットの名前を指定します。
const bucket = 'yourBucketName';
// オブジェクトの名前を指定します。
const key = 'yourObjectName';

/**
 * オブジェクトのメタデータをクエリします。
 * getObjectMeta メソッドを使用して、HTTP ヘッダーを含むオブジェクトのメタデータをクエリします。
 */
const getObjectMeta = async () => {
  try {
    // getObjectMeta メソッドを使用して、オブジェクトのメタデータをクエリします。
    const res = await client.getObjectMeta({
      bucket, // バケットの名前を指定します。
      key, // オブジェクトの名前を指定します。
    });

    // オブジェクトメタデータを表示します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中の例外をキャプチャします。
    if (err instanceof RequestError) {
      // 既知の種類のエラーが存在する場合は、エラーコード、エラーメッセージ、リクエスト ID、HTTP ステータスコード、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); // EC
    } else {
      // その他の不明な種類のエラーを表示します。
      console.log('unknown error: ', err);
    }
  }
};

// getObjectMeta 関数を呼び出して、オブジェクトメタデータをクエリします。
getObjectMeta();