Selain daftar kontrol akses (ACL) tingkat bucket, Object Storage Service (OSS) menyediakan ACL tingkat objek. Anda dapat mengonfigurasi ACL suatu objek saat mengunggahnya atau mengubah ACL-nya setelah diunggah.
ACL Objek
Suatu objek memiliki empat izin baca/tulis:
ACL objek memiliki prioritas lebih tinggi daripada ACL bucket tempat objek tersebut disimpan. Misalnya, jika ACL suatu objek dalam bucket private diatur ke public-read, semua pengguna, termasuk pengguna anonim, dapat membaca objek tersebut.
Jenis izin | Deskripsi | Nilai izin |
Inherited from bucket | Jika Anda tidak mengonfigurasi ACL objek, ACL objek tersebut akan sama dengan ACL bucket tempat objek tersebut disimpan. | Aliyun::OSS::ACL::DEFAULT |
Private | Hanya pemilik objek yang dapat melakukan operasi baca dan tulis pada objek tersebut. Pengguna lain tidak dapat mengakses objek tersebut. | Aliyun::OSS::ACL::PRIVATE |
Public-read | Hanya pemilik objek yang dapat melakukan operasi tulis pada objek tersebut. Pengguna lain, termasuk pengguna anonim, hanya dapat membaca objek tersebut. Peringatan Pengaturan ini dapat menyebabkan akses tidak sah ke data dalam bucket Anda dan biaya tinggi. Harap berhati-hati saat mengatur ACL objek ke public-read. | Aliyun::OSS::ACL::PUBLIC_READ |
Public-read-write | Semua pengguna, termasuk pengguna anonim, dapat melakukan operasi baca dan tulis pada objek tersebut. Peringatan Jika Anda mengatur ACL objek ke nilai ini, semua pengguna dapat mengakses objek tersebut dan menulis data ke objek melalui Internet. Hal ini dapat menyebabkan akses tidak sah ke data dalam bucket Anda serta biaya tinggi. Jika pengguna mengunggah data atau informasi terlarang ke bucket, kepentingan dan hak sah Anda mungkin dilanggar. Oleh karena itu, kami menyarankan agar Anda tidak mengatur ACL bucket ke public-read-write kecuali benar-benar diperlukan. | Aliyun::OSS::ACL::PUBLIC_READ_WRITE |
Contoh
Kode berikut menunjukkan cara mengonfigurasi dan mendapatkan ACL suatu objek:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Wilayah China (Hangzhou) digunakan sebagai contoh. Ganti endpoint dengan yang sesuai untuk wilayah Anda.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Tentukan nama bucket. Misalnya, examplebucket.
bucket = client.get_bucket('examplebucket')
# Tentukan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/example.txt.
# Dapatkan ACL objek yang diatur saat pengunggahan.
acl = bucket.get_object_acl('exampledir/example.txt')
puts acl
# Ubah ACL objek.
bucket.set_object_acl('exampledir/example.txt', Aliyun::OSS::ACL::PUBLIC_READ)
acl = bucket.get_object_acl('exampledir/example.txt')
puts acl Referensi
Untuk informasi selengkapnya tentang operasi API yang dapat Anda panggil untuk mengonfigurasi ACL objek, lihat PutObjectACL.
Untuk informasi selengkapnya tentang operasi API yang dapat Anda panggil untuk mengkueri ACL objek, lihat GetObjectACL.