全部产品
Search
文档中心

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

更新时间:Nov 30, 2025

Topik ini menjelaskan cara mendaftar semua objek, sejumlah objek tertentu, atau objek dengan awalan tertentu dalam sebuah bucket ketika Pengendalian versi diaktifkan.

Daftar informasi tentang semua objek dalam bucket

Kode berikut menunjukkan cara mendaftar informasi versi semua objek, termasuk penanda hapus, dalam bucket yang ditentukan:

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

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel 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,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Daftar informasi versi semua objek, termasuk penanda hapus.
async function getObjectVersions() {
  let nextKeyMarker = null;
  let nextVersionMarker = null;
  let versionListing = null;
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker,
      versionIdMarker: nextVersionMarker,
    });

    versionListing.objects.forEach((o) => {
      console.log(`${o.name}, ${o.versionId}`);
    });
    versionListing.deleteMarker.forEach((o) => {
      console.log(`${o.name}, ${o.versionId}`);
    });

    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
  } while (versionListing.isTruncated);
}

getObjectVersions();

Daftar informasi versi objek dengan awalan tertentu

Kode berikut menunjukkan cara mendaftar informasi versi objek yang memiliki awalan tertentu:

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

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel 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,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Daftar informasi versi objek yang memiliki awalan "test-".
async function getObjectVersionsByPrefix() {
  let nextKeyMarker = null;
  let nextVersionMarker = null;
  let versionListing = null;
  const prefix = 'test-'
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker,
      versionIdMarker: nextVersionMarker,
      prefix
    })
    versionListing.objects.forEach(o => {
      console.log(`${o.name}, ${o.versionId}`)
    })
    versionListing.deleteMarker.forEach(o => {
      console.log(`${o.name}, ${o.versionId}`)
    })
    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
  } while (versionListing.isTruncated);
}

getObjectVersionsByPrefix();

Daftar informasi versi sejumlah objek tertentu

Kode berikut menunjukkan cara mendaftar informasi versi sejumlah objek tertentu:

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

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel 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,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

async function getObjectVersionByNumber() {
  // Daftar informasi versi maksimal 100 objek.
  const versionListing = await client.getBucketVersions({
    "max-keys": 100,
  });
  // Dapatkan informasi versi objek. Jika Pengendalian versi dinonaktifkan, VersionId bernilai "none".
  versionListing.objects.forEach((o) => {
    console.log(`${o.name}, ${o.versionId}`);
  });
  versionListing.deleteMarker.forEach((o) => {
    console.log(`${o.name}, ${o.versionId}`);
  });
}

getObjectVersionByNumber();

Fitur folder

OSS tidak memiliki konsep folder asli. Sebagai gantinya, semua elemen disimpan sebagai objek. Anda dapat mensimulasikan folder dengan membuat objek berukuran 0 KB yang namanya diakhiri dengan garis miring (/). Objek tersebut dapat diunggah dan diunduh. Konsol OSS menampilkan objek yang namanya diakhiri dengan garis miring (/) sebagai folder.

Anda dapat menggunakan parameter delimiter dan prefix untuk mensimulasikan fungsionalitas folder:

  • Jika Anda menyetel parameter prefix ke nama folder, OSS akan mendaftar semua objek yang namanya diawali dengan awalan tersebut. Ini mengembalikan semua objek dalam folder beserta subdirektorinya.

  • Jika Anda menyetel parameter prefix dan menyetel parameter delimiter ke garis miring (/), OSS hanya akan mendaftar objek dan subdirektori di tingkat atas folder tersebut. Subdirektori dikembalikan dalam elemen CommonPrefixes, sedangkan objek di dalam subdirektori tersebut tidak didaftarkan.

Misalnya, sebuah bucket berisi empat objek: oss.jpg, fun/test.jpg, fun/movie/001.avi, dan fun/movie/007.avi4. Garis miring (/) digunakan sebagai pemisah folder. Contoh berikut menunjukkan cara mendaftar objek dengan mensimulasikan struktur folder.

Daftar informasi versi objek di direktori root

Kode berikut menunjukkan cara mendaftar informasi versi objek di direktori root:

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

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel 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,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Setel parameter delimiter ke garis miring (/) untuk mendaftar informasi versi objek dan nama folder di direktori root.
async function getRootObjectVersions() {
  let nextKeyMarker = null;
  let nextVersionMarker = null;
  let versionListing = null;
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker,
      versionIdMarker: nextVersionMarker,
      delimiter: "/",
    });
    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
    console.log(versionListing);
  } while (versionListing.isTruncated);
}

getRootObjectVersions();

Daftar file dan subdirektori dalam direktori

Kode berikut menunjukkan cara mendaftar objek dan subdirektori dalam direktori tertentu:

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

const client = new OSS({
  // Setel region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel 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,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Setel parameter prefix untuk mendapatkan semua file dan folder dalam direktori foo/. Juga, setel parameter delimiter ke garis miring (/) sebagai pemisah folder.
async function getObjectVersionsByPrefixAndDirectory() {
  let nextKeyMarker = null;
  let nextVersionMarker = null;
  let versionListing = null;
  let prefix = "foo/";
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker,
      versionIdMarker: nextVersionMarker,
      prefix,
      delimiter: "/",
    });
    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
    console.log(versionListing);
  } while (versionListing.isTruncated);
}

getObjectVersionsByPrefixAndDirectory();

Referensi

Untuk informasi selengkapnya mengenai operasi API untuk mendaftar objek, lihat ListObjectVersions (GetBucketVersions).