全部产品
Search
文档中心

Object Storage Service:Daftar objek (Node.js SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara menampilkan semua objek, sejumlah objek tertentu, serta objek yang namanya mengandung awalan tertentu dalam bucket Object Storage Service (OSS).

Metode penampilan

Anda dapat memanggil metode list atau listV2 untuk menampilkan hingga 1.000 objek dalam satu bucket sekaligus. Anda dapat menentukan parameter untuk melakukan berbagai operasi penampilan, seperti menampilkan semua objek setelah titik awal tertentu, menampilkan objek dan subdirektori dalam direktori tertentu, serta membagi hasil menjadi beberapa halaman. Perbedaan utama antara kedua metode tersebut adalah sebagai berikut:

  • Metode list secara default mengembalikan informasi pemilik.

  • Metode listV2 mengharuskan Anda menyetel `fetchOwner` agar informasi pemilik disertakan dalam hasil.

    Catatan

    Untuk bucket yang telah mengaktifkan versioning, gunakan operasi listV2 untuk menampilkan objek.

Bagian berikut menjelaskan parameter untuk metode list dan listV2.

  • Menampilkan objek menggunakan metode list

    Parameter dijelaskan sebagai berikut:

    Parameter

    Tipe

    Deskripsi

    prefix

    string

    Menampilkan objek yang memiliki awalan tertentu.

    delimiter

    string

    Karakter yang digunakan untuk mengelompokkan nama objek.

    marker

    string

    Menampilkan objek yang namanya secara leksikografis berada setelah marker.

    max-keys

    number | string

    Menentukan jumlah maksimum objek yang dikembalikan.

    encoding-type

    'url' | ''

    Mengenkripsi konten yang dikembalikan. Atur jenis enkoding ke URL.

  • Menampilkan objek menggunakan metode listV2

    Berikut adalah parameter untuk listV2:

    Parameter

    Tipe

    Deskripsi

    prefix

    string

    Menampilkan objek yang memiliki awalan tertentu.

    continuation-token

    string

    Memulai penampilan objek dari token ini.

    delimiter

    string

    Karakter yang digunakan untuk mengelompokkan nama objek.

    max-keys

    number | string

    Menentukan jumlah maksimum objek yang dikembalikan.

    start-after

    string

    Memulai pengembalian objek yang secara leksikografis berada setelah nilai `start-after`.

    fetch-owner

    boolean

    Menentukan apakah informasi pemilik disertakan dalam hasil.

    encoding-type

    'url' | ''

    Mengenkripsi konten yang dikembalikan. Atur jenis enkoding ke URL.

Penampilan objek sederhana

Kode berikut menunjukkan cara menampilkan objek dalam bucket tertentu. Secara default, 100 objek ditampilkan.

  • Menggunakan metode list

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
        // Jika Anda tidak menentukan parameter apa pun, maksimal 100 objek dikembalikan secara default.
        const result = await client.list();
        console.log(result);
    }
    
    list();
  • Menggunakan metode listV2

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
        // Jika Anda tidak menentukan parameter apa pun, maksimal 100 objek dikembalikan secara default.
        const result = await client.listV2();
        console.log(result);
    }
    
    list();

Menampilkan jumlah objek tertentu

Kode berikut menunjukkan cara menggunakan parameter max-keys untuk menampilkan jumlah objek tertentu dalam sebuah bucket.

  • Menggunakan metode list

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
        const result = await client.list({
            // Tetapkan jumlah maksimum objek yang dikembalikan menjadi 10. Objek diurutkan secara leksikografis.
          "max-keys": 10
      });
        console.log(result);
    }
    
    list();
  • Menggunakan metode listV2

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
        const result = await client.listV2({
            // Tetapkan jumlah maksimum objek yang dikembalikan menjadi 10. Objek diurutkan secara leksikografis.
          "max-keys": 10
      });
        console.log(result);
    }
    
    list();

Menampilkan objek dengan awalan tertentu

Kode berikut menunjukkan cara menggunakan parameter prefix untuk menampilkan objek dalam bucket yang memiliki awalan tertentu.

  • Menggunakan metode list

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
      const result = await client.list({
        // Tampilkan 10 objek.
        "max-keys": 10,
        // Tampilkan objek yang namanya mengandung awalan foo/.
        prefix: 'foo/'
      });
      console.log(result);
    }
    
    list();
  • Menggunakan metode listV2

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
      const result = await client.listV2({
        // Tampilkan 10 objek.
        "max-keys": 10,
        // Tampilkan objek yang namanya mengandung awalan foo/.
        prefix: 'foo/'
      });
      console.log(result);
    }
    
    list();

Menampilkan objek setelah nama objek tertentu

Kode berikut menunjukkan cara menampilkan objek yang namanya secara leksikografis berada setelah string tertentu (marker atau startAfter).

  • Menggunakan metode list

    Parameter marker menentukan nama file.

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    // Tampilkan objek yang secara leksikografis berada setelah 'test'. Secara default, 100 objek ditampilkan.
    const marker = 'test'
    async function list () {
      const result = await client.list({
        marker
      });
      console.log(result);
    }
    
    list();
  • Menggunakan metode listV2

    Parameter startAfter menentukan nama objek setelah mana penampilan dimulai.

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
      const result = await client.listV2({
        // Tampilkan objek dan subdirektori dalam folder a/ yang berada setelah a/b.
        delimiter: '/',
        prefix: 'a/',
        'start-after': 'a/b'
      });
      console.log(result.objects, result.prefixes);
    }
    
    list();

Menampilkan semua objek per halaman

Kode berikut menunjukkan cara menampilkan semua objek dalam bucket tertentu secara bertahap per halaman. Jumlah objek yang ditampilkan per halaman ditentukan oleh max-keys.

  • Metode list

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    let marker = null; 
    
    // Tampilkan 20 objek per halaman.
    const maxKeys = 20;
    
    async function list () {
      do {
        const result = await client.list({
          marker: marker, 
          'max-keys': maxKeys
        });
        marker = result.nextMarker;
        console.log(result);
      } while (marker);
    }
    
    list();
  • Menggunakan metode listV2

    const OSS = require('ali-oss');
    
    const client = new OSS({
      // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
      region: 'yourregion',
      // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // Ganti yourbucketname dengan nama bucket.
      bucket: 'yourbucketname'
    });
    
    async function list () {
      let continuationToken = null;
      // Tampilkan 20 objek per halaman.
      const maxKeys = 20;
      do {
        const result = await client.listV2({
          'continuation-token': continuationToken,
          'max-keys': maxKeys
          });
        continuationToken = result.nextContinuationToken;
            console.log(result);
      }while(continuationToken)
    }
    
    list();

Menyertakan informasi pemilik dalam hasil penampilan

Kode berikut menunjukkan cara menyertakan informasi pemilik dalam hasil penampilan:

const OSS = require('ali-oss');

const client = new OSS({
  // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Ganti yourbucketname dengan nama bucket.
  bucket: 'yourbucketname'
});

// Secara default, informasi tentang objek yang ditampilkan tidak mencakup informasi pemilik. Untuk menyertakan informasi pemilik, tetapkan parameter fetch-owner ke true.
async function list () {
  const result = await client.listV2({
    'fetch-owner': true
  });
  console.log(result.objects);
}

list();

Menampilkan objek dan subdirektori dalam direktori tertentu

    Asumsikan sebuah bucket berisi objek-objek berikut:

    foo/x
    foo/y
    foo/bar/a
    foo/bar/b
    foo/hello/C/1
    foo/hello/C/2
    ...
    foo/hello/C/9999

    Kode berikut menunjukkan cara menggunakan metode list atau listV2 untuk menampilkan objek dan subdirektori dalam direktori tertentu.

    • Menggunakan metode list

      const OSS = require('ali-oss');
      
      const client = new OSS({
        // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
        region: 'yourregion',
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
        accessKeyId: process.env.OSS_ACCESS_KEY_ID,
        accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
        authorizationV4: true,
        // Ganti yourbucketname dengan nama bucket.
        bucket: 'yourbucketname'
      });
      
      // Panggil fungsi listDir dan tetapkan awalan berbeda untuk menampilkan objek tujuan yang berbeda.
      async function listDir(dir) {
        try {
          const result = await client.list({
            prefix: dir,
            delimiter: '/'
          });
          if (result && result.prefixes) {
            result.prefixes.forEach(subDir => {
              console.log('SubDir: %s', subDir);
            });
          }
          if (result && result.objects) {
            result.objects.forEach(obj => {
              console.log('Object: %s', obj.name);
            });
          }
        } catch (e) {
          console.log(e);
        }
      }
      
      listDir('foo/');
      // Output yang diharapkan:
      // SubDir: foo/bar/
      // SubDir: foo/hello/
      // Object: foo/x
      // Object: foo/y
      
      listDir('foo/bar/');
      // Output yang diharapkan:
      // Object: foo/bar/a
      // Object: foo/bar/b
      
      listDir('foo/hello/C/');
      // Output yang diharapkan:
      // Object: foo/hello/C/1
      // Object: foo/hello/C/2
      // ...
      // Object: foo/hello/C/9999
    • Menggunakan metode listV2

      const OSS = require('ali-oss');
      
      const client = new OSS({
        // Ganti yourregion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan Region ke oss-cn-hangzhou.
        region: 'yourregion',
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
        accessKeyId: process.env.OSS_ACCESS_KEY_ID,
        accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
        authorizationV4: true,
        // Ganti yourbucketname dengan nama bucket.
        bucket: 'yourbucketname'
      });
      
      // Panggil fungsi listV2Dir dan tetapkan awalan berbeda untuk menampilkan objek tujuan yang berbeda.
      async function listV2Dir(dir) {
        try {
          const result = await client.listV2({
            prefix: dir,
            delimiter: '/'
          });
          if (result && result.prefixes) {
            result.prefixes.forEach(subDir => {
              console.log('SubDir: %s', subDir);
            });
          }
          if (result && result.objects) {
            result.objects.forEach(obj => {
              console.log('Object: %s', obj.name);
            });
          }
        } catch (e) {
          console.log(e);
        }
      }
      
      listDir('foo/');
      // Output yang diharapkan
      // SubDir: foo/bar/
      // SubDir: foo/hello/
      // Object: foo/x
      // Object: foo/y
      
      listDir('foo/bar/');
      // Output yang diharapkan
      // Object: foo/bar/a
      // Object: foo/bar/b
      
      listDir('foo/hello/C/');
      // Output yang diharapkan
      // Object: foo/hello/C/1
      // Object: foo/hello/C/2
      // ...
      // Object: foo/hello/C/9999

    Referensi