Anda dapat mengatur daftar kontrol akses (ACL) sebuah objek ke salah satu dari nilai berikut: Diwarisi dari bucket, Pribadi, Publik Baca, atau Publik Baca/Tulis. Topik ini menjelaskan cara mengelola ACL sebuah objek.
Catatan penggunaan
Sebelum menjalankan contoh kode dalam topik ini, Anda harus membuat instans OSSClient menggunakan metode seperti nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization.
ACL Objek
Access permissions | Deskripsi | Access Permissions |
Diwarisi dari bucket | File mewarisi izin akses bucket tersebut. | default |
Pribadi | Hanya pemilik objek dan pengguna yang diberi otorisasi yang memiliki izin baca dan tulis pada objek. | private |
Publik baca | Hanya pemilik objek dan pengguna yang diberi otorisasi yang memiliki izin baca dan tulis pada objek. Semua pengguna memiliki izin baca pada objek. Berhati-hatilah saat menetapkan ACL objek ke nilai ini. | public-read |
Publik baca/tulis | Semua pengguna memiliki izin baca dan tulis pada objek. Berhati-hatilah saat menetapkan ACL objek ke nilai ini. | public-read-write |
ACL objek memiliki prioritas lebih tinggi dibandingkan ACL bucket tempat objek tersebut disimpan. Sebagai contoh, jika ACL bucket adalah Pribadi dan ACL objek di dalam bucket adalah Publik Baca/Tulis, semua pengguna diberikan izin baca dan tulis pada objek tersebut. Jika ACL objek tidak dikonfigurasi, ACL objek akan sama dengan ACL bucket tempat objek tersebut disimpan.
Konfigurasikan ACL sebuah objek
Berikut ini adalah contoh kode yang menunjukkan cara mengatur ACL objek exampleobject.txt di dalam bucket bernama examplebucket menjadi Pribadi:
OSSPutObjectACLRequest *request = [OSSPutObjectACLRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
request.bucketName = @"examplebucket";
// Tentukan jalur lengkap objek. Jangan sertakan nama bucket dalam jalur lengkap. Contoh: exampleobject.txt.
request.objectKey = @"exampleobject.txt";
/**
* Konfigurasikan ACL objek.
* public-read
* private
* public-read-write
* default
*/
request.acl = @"private";
OSSTask * putObjectACLTask = [client putObjectACL:request];
[putObjectACLTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"set object ACL berhasil!");
} else {
NSLog(@"set object ACL gagal, error: %@", task.error);
}
return nil;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [putObjectACLTask waitUntilFinished];Dapatkan izin akses file
Berikut ini adalah contoh kode yang menunjukkan cara mengkueri ACL objek bernama exampleobject.txt di dalam bucket bernama examplebucket:
OSSGetObjectACLRequest *request = [OSSGetObjectACLRequest new];
// Tentukan nama bucket. Contoh: examplebucket.
request.bucketName = @"examplebucket";
// Tentukan jalur lengkap objek. Jangan sertakan nama bucket dalam jalur lengkap. Contoh: exampleobject.txt.
request.objectName = @"exampleobject.txt";
OSSTask * getObjectACLTask = [client getObjectACL:request];
[getObjectACLTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetObjectACLResult *result = task.result;
NSLog(@"objectACL: %@", result.grant);
} else {
NSLog(@"get object ACL gagal, error: %@", task.error);
}
return nil;
}];
// Implementasikan pemblokiran sinkron untuk menunggu tugas selesai.
// [putObjectACLTask waitUntilFinished];Referensi
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengonfigurasi ACL sebuah objek, lihat PutObjectACL.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengkueri ACL sebuah objek, lihat GetObjectACL.
Untuk informasi lebih lanjut tentang cara menginisialisasi instance OSSClient, lihat Inisialisasi.