全部产品
Search
文档中心

Object Storage Service:Kelola metadata objek (Harmony SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara mengonfigurasi dan mengkueri metadata objek menggunakan Object Storage Service (OSS) SDK untuk Harmony.

Catatan penggunaan

  • Untuk informasi lebih lanjut tentang wilayah dan titik akhir, lihat Wilayah dan titik akhir.

  • Untuk menetapkan metadata objek, Anda harus memiliki izin oss:PutObject. Untuk mengkueri metadata objek, Anda harus memiliki izin oss:GetObject. Untuk informasi selengkapnya, lihat Berikan izin kustom kepada RAM user.

Konfigurasikan metadata objek saat Anda mengunggah objek

Berikut adalah contoh kode yang menunjukkan cara menyetel daftar kontrol akses (ACL) objek menjadi public-read saat mengunggah objek:

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

// Buat instance OSSClient.
const client = new Client({
  // Tentukan ID AccessKey yang diperoleh dari Security Token Service (STS).
  accessKeyId: 'yourAccessKeyId',
  // Tentukan Rahasia AccessKey yang diperoleh dari STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Tentukan token keamanan yang diperoleh dari STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

const bucket = 'yourBucketName'; // Tentukan nama bucket.

const key='yourObjectName '; // Tentukan nama objek.

const putObject = async () => {
  try {
    // Gunakan metode putObject untuk mengunggah data ke objek di bucket yang ditentukan dan lewati parameter.
    const res = await client.putObject({
      bucket, // Tentukan nama bucket.
      key, // Tentukan nama objek.
      data: 'hello world' // Tentukan data yang ingin Anda unggah. Dalam contoh ini, string sederhana diunggah.
      objectAcl: EObjectAcl.PRIVATE
    });

    // Tampilkan hasil operasi unggah objek.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      // Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan 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 {
      // Tampilkan jenis kesalahan lain yang tidak diketahui.
      console.log('unknown error: ', err);
    }
  }
}

// Panggil fungsi putObject untuk melakukan operasi unggah objek.
putObject();

Kueri metadata objek

Gunakan metode HeadObject untuk mengambil semua metadata objek

Kode contoh berikut menunjukkan cara mengkueri semua metadata objek menggunakan metode HeadObject:

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

// Buat instance OSSClient.
const client = new Client({
  // Tentukan ID AccessKey yang diperoleh dari STS.
  accessKeyId: 'yourAccessKeyId',
  // Tentukan Rahasia AccessKey yang diperoleh dari STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Tentukan token keamanan yang diperoleh dari STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

// Tentukan nama bucket.
const bucket = 'yourBucketName';
// Tentukan nama objek.
const key = 'yourObjectName';

/**
 * Tanyakan metadata objek. 
 * Gunakan metode HeadObject untuk menanyakan metadata objek tanpa mengunduh objek. 
 */
const headObject = async () => {
  try {
    // Gunakan metode HeadObject untuk menanyakan metadata objek.
    const res = await client.headObject({
      bucket, // Tentukan nama bucket.
      key, // Tentukan nama objek.
    });

    // Tampilkan metadata objek.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      // Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
      console.log('code: ', err.code); // Kode kesalahan.
      console.log('message: ', err.message); // Pesan kesalahan.
      console.log('requestId: ', err.requestId); // ID permintaan.
      console.log('status: ', err.status); // Kode status HTTP.
      console.log('ec: ', err.ec); // EC.
    } else {
      // Tampilkan jenis kesalahan lain yang tidak diketahui.
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi headObject untuk menanyakan metadata objek.
headObject();

Gunakan GetObjectMeta untuk memperoleh sebagian metadata objek

Catatan

Anda dapat menggunakan metode GetObjectMeta untuk menanyakan hanya metadata sebagian objek, termasuk panjang konten yang dikembalikan (ContentLength), tag entitas (ETag), waktu modifikasi terakhir (LastModified), waktu akses terakhir (LastAccessTime), ID versi (VersionId), dan hash CRC-64 (HashCRC64).

Kode contoh berikut menunjukkan cara mengkueri metadata parsial objek menggunakan metode GetObjectMeta:

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

// Buat instance OSSClient.
const client = new Client({
  // Tentukan ID AccessKey yang diperoleh dari STS.
  accessKeyId: 'yourAccessKeyId',
  // Tentukan Rahasia AccessKey yang diperoleh dari STS.
  accessKeySecret: 'yourAccessKeySecret',
  // Tentukan token keamanan yang diperoleh dari STS.
  securityToken: 'yourSecurityToken',
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

// Tentukan nama bucket.
const bucket = 'yourBucketName';
// Tentukan nama objek.
const key = 'yourObjectName';

/**
 * Tanyakan metadata objek. 
 * Gunakan metode getObjectMeta untuk menanyakan metadata objek, termasuk header HTTP. 
 */
const getObjectMeta = async () => {
  try {
    // Gunakan metode getObjectMeta untuk menanyakan metadata objek.
    const res = await client.getObjectMeta({
      bucket, // Tentukan nama bucket.
      key, // Tentukan nama objek.
    });

    // Tampilkan metadata objek.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      // Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
      console.log('code: ', err.code); // Kode kesalahan.
      console.log('message: ', err.message); // Pesan kesalahan.
      console.log('requestId: ', err.requestId); // ID permintaan.
      console.log('status: ', err.status); // Kode status HTTP.
      console.log('ec: ', err.ec); // EC.
    } else {
      // Tampilkan jenis kesalahan lain yang tidak diketahui.
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi getObjectMeta untuk menanyakan metadata objek.
getObjectMeta();