全部产品
Search
文档中心

Object Storage Service:Daftar objek (Harmony SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara mendaftar semua objek dalam bucket menggunakan Object Storage Service (OSS) SDK untuk Harmony.

Catatan penggunaan

Contoh kode

Kode contoh berikut menunjukkan cara memanggil operasi ListObjectsV2 untuk mendaftar objek dalam bucket:

import Client, { 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. Sebagai contoh, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});

/**
 * Daftar objek dalam sebuah bucket. 
 * Gunakan metode listObjectsV2 untuk mencantumkan objek dalam bucket dan metadata objek tersebut. 
 */
const listObjectsV2 = async () => {
  try {
    // Gunakan metode listObjectsV2 untuk mencantumkan objek dalam bucket dan metadata objek tersebut.
    const res = await client.listObjectsV2({
      bucket: 'yourBucketName', // Tentukan nama bucket.
    });

    // Tampilkan objek dan metadata mereka.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      // Jika terdapat jenis kesalahan yang diketahui, 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 lainnya yang tidak diketahui.
      console.log('kesalahan tidak dikenal: ', err);
    }
  }
};

// Panggil fungsi listObjectsV2 untuk mencantumkan objek dalam bucket.
listObjectsV2();

Skenario umum

Daftar objek dengan awalan tertentu

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

// Buat instance OSSClient.
const client = new Client({
  // Tentukan ID AccessKey dari pengguna RAM.
  accessKeyId: 'yourAccessKeyId',
  // Tentukan Rahasia AccessKey dari pengguna RAM.
  accessKeySecret: 'yourAccessKeySecret',
  // Tentukan wilayah tempat bucket berada. Sebagai contoh, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi oss-cn-hangzhou.
  region: 'oss-cn-hangzhou',
});


/**
 * Daftar objek yang namanya mengandung awalan tertentu dalam bucket. 
 * Gunakan metode listObjectsV2 dan tentukan parameter awalan untuk menyaring objek. 
 */
const listObjectsV2WithPrefix = async () => {
  try {
    // Gunakan metode listObjectsV2 untuk mencantumkan objek yang namanya mengandung awalan tertentu dalam bucket.
    const res = await client.listObjectsV2({
      bucket: 'yourBucketName', // Tentukan nama bucket.
      prefix: 'objectNamePrefix', // Tentukan awalan yang terkandung dalam nama objek.
    });

    // Tampilkan objek dan metadata mereka.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      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 {
      console.log('kesalahan tidak dikenal: ', err);
    }
  }
};

// Panggil fungsi listObjectsV2WithPrefix untuk mencantumkan objek yang namanya mengandung awalan tertentu dalam bucket.
listObjectsV2WithPrefix();

Daftar objek dengan menentukan delimiter

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

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan ID AccessKey RAM user Anda.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Rahasia AccessKey RAM user Anda.
  accessKeySecret: 'yourAccessKeySecret',
  // Tentukan wilayah tempat bucket berada. Misalnya, wilayah untuk China (Hangzhou) adalah 'oss-cn-hangzhou'.
  region: 'oss-cn-hangzhou',
});


/**
 * Daftar objek dalam bucket dan gunakan pemisah.
 * Gunakan metode listObjectsV2 dan tentukan parameter delimiter untuk mensimulasikan struktur folder.
 */
const listObjectsV2WithDelimiter = async () => {
  try {
    // Panggil metode listObjectsV2 untuk mendaftar objek dalam bucket yang ditentukan dan gunakan pemisah untuk mensimulasikan struktur folder.
    const res = await client.listObjectsV2({
      bucket: 'yourBucketName', // Nama bucket. Ganti dengan nama bucket yang Anda gunakan.
      delimiter: '/', // Pemisah. Biasanya digunakan untuk mensimulasikan struktur folder.
    });

    // Cetak objek yang terdaftar dan metadata-nya.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      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); // Kode kesalahan
    } else {
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi listObjectsV2WithDelimiter untuk mendaftar objek menggunakan pemisah.
listObjectsV2WithDelimiter();

Daftar semua objek per halaman

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

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan ID AccessKey RAM user Anda.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Rahasia AccessKey RAM user Anda.
  accessKeySecret: 'yourAccessKeySecret',
  // Atur wilayah tempat bucket berada. Misalnya, untuk bucket di wilayah China (Hangzhou), atur wilayah menjadi 'oss-cn-hangzhou'.
  region: 'oss-cn-hangzhou',
});


/**
 * Daftar objek dalam bucket secara per halaman.
 * Gunakan metode listObjectsV2 dengan parameter continuationToken untuk mendaftar objek per halaman.
 */
const listObjectsV2WithContinuationToken = async () => {
  try {
    let continuationToken: string | undefined; // Token paginasi. Awalnya kosong.
    let isTruncated = true; // Menunjukkan apakah masih ada objek yang belum terdaftar.

    // Lakukan perulangan dan daftarkan objek hingga tidak ada lagi objek yang tersisa.
    while (isTruncated) {
      const res = await client.listObjectsV2({
        bucket: 'yourBucketName', // Nama bucket. Ganti dengan nama bucket Anda.
        continuationToken, // Token paginasi yang digunakan untuk mengambil halaman hasil berikutnya.
      });

      // Cetak objek pada halaman saat ini dan metadata-nya.
      console.log(JSON.stringify(res));

      // Perbarui status paginasi.
      isTruncated = res.data.isTruncated; // Menunjukkan apakah masih ada objek.
      continuationToken = res.data.nextContinuationToken; // Token paginasi untuk halaman berikutnya.
    }
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      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); // Kode kesalahan.
    } else {
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi listObjectsV2WithContinuationToken untuk mendaftar objek per halaman.
listObjectsV2WithContinuationToken();

Daftar objek dan dapatkan informasi pemilik

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

// Buat instans klien OSS.
const client = new Client({
  // Ganti dengan ID AccessKey RAM user.
  accessKeyId: 'yourAccessKeyId',
  // Ganti dengan Rahasia AccessKey RAM user.
  accessKeySecret: 'yourAccessKeySecret',
  // Tentukan wilayah tempat bucket berada. Misalnya, wilayah untuk China (Hangzhou) adalah 'oss-cn-hangzhou'.
  region: 'oss-cn-hangzhou',
});

/**
 * Mendaftar objek dalam bucket dan mendapatkan informasi pemiliknya.
 * Gunakan metode listObjectsV2 dan atur parameter fetchOwner untuk mendapatkan informasi pemilik.
 */
const listObjectsV2WithFetchOwner = async () => {
  try {
    // Panggil metode listObjectsV2 untuk mendaftar objek dalam bucket yang ditentukan dan mendapatkan informasi pemiliknya.
    const res = await client.listObjectsV2({
      bucket: 'yourBucketName', // Nama bucket. Ganti dengan nama bucket Anda.
      fetchOwner: true, // Menentukan apakah akan mendapatkan informasi pemilik objek.
    });

    // Cetak objek yang terdaftar dan metadata-nya.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian yang terjadi selama permintaan.
    if (err instanceof RequestError) {
      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); // Kode kesalahan.
    } else {
      console.log('unknown error: ', err);
    }
  }
};

// Panggil fungsi listObjectsV2WithFetchOwner untuk mendaftar objek dan mendapatkan informasi pemiliknya.
listObjectsV2WithFetchOwner();