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
listsecara default mengembalikan informasi pemilik.Metode
listV2mengharuskan Anda menyetel `fetchOwner` agar informasi pemilik disertakan dalam hasil.CatatanUntuk bucket yang telah mengaktifkan versioning, gunakan operasi
listV2untuk 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/9999Kode 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/9999Menggunakan 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
Untuk kode contoh lengkap tentang penampilan objek, lihat contoh di GitHub.
Untuk informasi selengkapnya tentang operasi API untuk penampilan objek, lihat GetBucket (ListObjects) dan ListObjectsV2 (GetBucketV2).