Untuk menyederhanakan pengorganisasian dan manajemen sejumlah besar objek—yang sulit dilakukan dalam struktur datar—Object Storage Service (OSS) menyediakan fitur direktori yang mensimulasikan struktur folder.
Catatan penggunaan
Saat menggunakan alat packaging seperti Webpack dan Browserify, instal OSS SDK untuk Browser.js dengan menjalankan perintah npm install ali-oss.
Jika Anda ingin mengakses bucket OSS dari browser tetapi bucket tersebut belum dikonfigurasi dengan aturan CORS, browser akan menolak permintaan tersebut. Oleh karena itu, Anda harus mengonfigurasi aturan CORS untuk bucket jika ingin mengaksesnya dari browser. Untuk informasi selengkapnya, lihat Instalasi.
Dalam kebanyakan kasus, OSS SDK untuk Browser.js digunakan di browser. Untuk mencegah pasangan AccessKey Anda terpapar, kami menyarankan agar Anda menggunakan kredensial akses temporary yang diperoleh dari Security Token Service (STS) untuk mengakses OSS.
Kredensial akses temporary terdiri atas pasangan AccessKey dan token keamanan. Pasangan AccessKey mencakup ID AccessKey dan Rahasia AccessKey. Untuk informasi selengkapnya tentang cara memperoleh kredensial akses temporary, lihat Gunakan STS untuk otorisasi akses temporary.
Buat direktori
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
</head>
<body>
<script>
const client = OSS({
// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, jika wilayahnya adalah China (Hangzhou), setel yourRegion ke oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// Pasangan AccessKey temporary (ID AccessKey dan Rahasia AccessKey) yang diperoleh dari layanan STS.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// Token keamanan (SecurityToken) yang diperoleh dari layanan STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket.
bucket: 'examplebucket'
});
// Tentukan nama direktori. Nama direktori harus diakhiri dengan garis miring (/).
client
.put("log/", new Blob([]))
.then((r) => {
console.log(r);
})
.catch((e) => {
console.log(e);
});
</script>
</body>
</html>Hapus direktori
Hapus direktori beserta semua objek di dalamnya dengan menentukan parameter Prefix. Misalnya, untuk menghapus direktori log dan semua objeknya dari bucket examplebucket, atur parameter Prefix dalam kode contoh menjadi log/.
Menghapus direktori juga akan menghapus semua subdirektori dan objek di dalamnya. Lakukan dengan hati-hati.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
</head>
<body>
<script>
const client = new OSS({
// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, jika wilayahnya adalah China (Hangzhou), setel yourRegion ke oss-cn-hangzhou.
region: "yourRegion",
authorizationV4: true,
// ID AccessKey dan Rahasia AccessKey temporary yang diperoleh dari layanan STS.
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
// Token keamanan yang diperoleh dari layanan STS.
stsToken: 'yourSecurityToken',
// Tentukan nama bucket. Misalnya, examplebucket.
bucket: "examplebucket",
});
// Tangani kegagalan permintaan. Ini mencegah promise.all terganggu dan mengembalikan alasan kegagalan serta nama file yang gagal.
async function handleDel(name, options) {
try {
await client.delete(name);
} catch (error) {
error.failObjectName = name;
return error;
}
}
// Hapus beberapa file.
async function deletePrefix(prefix) {
const list = await client.list({
prefix: prefix,
});
list.objects = list.objects || [];
const result = await Promise.all(
list.objects.map((v) => handleDel(v.name))
);
console.log(result);
}
// Hapus direktori dan semua file di dalamnya.
deletePrefix("log/");
</script>
</body>
</html>
Referensi
Untuk informasi selengkapnya tentang operasi API yang digunakan untuk membuat direktori, lihat PutObject dan CreateDirectory.
Untuk informasi selengkapnya tentang operasi API yang digunakan untuk menghapus folder dan semua file di dalamnya, lihat DeleteObject.