All Products
Search
Document Center

Object Storage Service:Kelola ACL objek (Harmony SDK)

Last Updated:Nov 30, 2025

Topik ini menjelaskan cara mengelola daftar kontrol akses (ACL) objek menggunakan Object Storage Service (OSS) SDK untuk Harmony.

Catatan penggunaan

  • Untuk informasi lebih lanjut tentang wilayah dan titik akhir, lihat Wilayah dan Titik Akhir.

  • Untuk mengatur ACL suatu objek, Anda harus memiliki izin oss:PutObjectAcl. Untuk mengambil ACL suatu objek, Anda harus memiliki izin oss:GetObjectAcl. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.

Jenis-jenis ACL

Terdapat empat jenis izin akses file (ACL):

Izin akses

Deskripsi

Nilai

Diwarisi dari bucket

ACL objek sama dengan bucket tempat objek disimpan.

default

Pribadi

Hanya pemilik objek dan pengguna yang berwenang yang memiliki izin baca dan tulis pada objek. Pengguna lain tidak dapat mengakses objek tersebut.

private

Publik-baca

Hanya pemilik objek dan pengguna yang berwenang yang memiliki izin baca dan tulis pada objek. Pengguna lain hanya memiliki izin baca pada objek tersebut. Berhati-hatilah saat Anda mengatur ACL objek ke nilai ini.

public-read

Publik-baca-tulis

Semua pengguna memiliki izin baca dan tulis pada objek. Berhati-hatilah saat Anda mengatur ACL objek ke nilai ini.

public-read-write

ACL objek memiliki prioritas lebih tinggi dibandingkan ACL bucket tempat objek disimpan. Sebagai contoh, jika ACL objek dalam bucket pribadi diatur ke publik-baca, semua pengguna, termasuk pengguna anonim, dapat membaca objek tersebut. Jika ACL objek tidak dikonfigurasikan, ACL objek akan mengikuti ACL bucket tempat objek disimpan.

Contoh

Konfigurasikan ACL untuk sebuah objek

import Client, { EObjectAcl, 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',
});

// Tentukan nama bucket.
const bucket = 'yourBucketName';
// Tentukan nama objek yang ingin Anda konfigurasikan ACL-nya.
const key = 'yourObjectName';

/**
 * Konfigurasikan ACL untuk objek. 
 * Gunakan metode putObjectAcl untuk mengonfigurasi ACL untuk objek. 
 */
const putObjectAcl = async () => {
  try {
    // Gunakan metode putObjectAcl untuk mengonfigurasi ACL untuk objek.
    const res = await client.putObjectAcl({
      bucket, // Tentukan nama bucket.
      key, // Tentukan nama objek.
      acl: EObjectAcl.PRIVATE, // Atur ACL objek menjadi pribadi.
    });

    // Tampilkan hasil permintaan.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      // Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
      console.log('kode: ', err.code); // Kode kesalahan.
      console.log('pesan: ', 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 lain yang tidak diketahui.
      console.log('kesalahan tidak dikenal: ', err);
    }
  }
};

// Panggil fungsi putObjectAcl untuk mengonfigurasi ACL untuk objek.
putObjectAcl();

Dapatkan izin akses file

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',
});

// Tentukan nama bucket.
const bucket = 'yourBucketName';
// Tentukan nama objek yang ingin Anda tanyakan ACL-nya.
const key = 'yourObjectName';

/**
 * Tanyakan ACL objek. 
 * Gunakan metode getObjectAcl untuk menanyakan ACL objek. 
 */
const getObjectAcl = async () => {
  try {
    // Gunakan metode getObjectAcl untuk menanyakan ACL objek.
    const res = await client.getObjectAcl({
      bucket, // Tentukan nama bucket.
      key, // Tentukan nama objek.
    });

    // Tampilkan ACL objek.
    console.log(JSON.stringify(res));
  } catch (err) {
    // Tangkap pengecualian selama permintaan.
    if (err instanceof RequestError) {
      // Jika jenis kesalahan yang diketahui ada, tampilkan informasi seperti kode kesalahan, pesan kesalahan, ID permintaan, kode status HTTP, dan EC.
      console.log('kode: ', err.code); // Kode kesalahan.
      console.log('pesan: ', 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 lain yang tidak diketahui.
      console.log('kesalahan tidak dikenal: ', err);
    }
  }
};

// Panggil fungsi getObjectAcl untuk menanyakan ACL objek.
getObjectAcl();