Operasi PutObjectACL mengubah daftar kontrol akses (ACL) suatu objek. Untuk menjalankan operasi ini, Anda harus merupakan pemilik bucket dan memiliki izin baca serta tulis terhadap objek tersebut.
Versioning
Secara default, operasi PutObjectACL menetapkan ACL untuk versi terkini suatu objek. Untuk menetapkan ACL pada versi tertentu, sertakan parameter versionId dalam permintaan Anda.
Jika Anda menentukan versionId untuk versi objek yang merupakan penanda hapus, OSS mengembalikan error 405 Method Not Allowed.
Jika Anda tidak menentukan versionId dan versi terbaru objek tersebut adalah penanda hapus, OSS mengembalikan error 404 NoSuchKey.
ACL
Operasi PutObjectACL menggunakan header permintaan x-oss-object-acl dalam permintaan PUT untuk menetapkan ACL objek. Izin akses berikut tersedia untuk objek.
ACL | Description |
private | Objek merupakan resource privat. Hanya pemilik objek yang memiliki izin baca dan tulis. Pengguna lain tidak dapat mengakses objek tersebut. |
public-read | Objek merupakan resource public-read. Pemilik objek memiliki izin baca dan tulis. Semua pengguna lain memiliki izin read-only. |
public-read-write | Objek merupakan resource public-read-write. Semua pengguna memiliki izin baca dan tulis untuk objek tersebut. |
default | Objek mewarisi izin dari bucket tempat objek tersebut disimpan. |
ACL objek memiliki prioritas lebih tinggi daripada ACL bucket. Misalnya, jika suatu objek memiliki ACL public-read-write tetapi berada di bucket privat, semua pengguna tetap dapat mengakses objek tersebut. Jika suatu objek tidak memiliki ACL khusus, objek tersebut akan mewarisi ACL bucket-nya.
Operasi baca mencakup GetObject, HeadObject, dan membaca objek sumber dalam operasi CopyObject dan UploadPartCopy. Operasi tulis mencakup PutObject, PostObject, AppendObject, DeleteObject, DeleteMultipleObjects, CompleteMultipartUpload, serta menulis objek tujuan dalam operasi CopyObject.
Anda juga dapat menetapkan ACL objek dengan menyertakan header x-oss-object-acl dalam permintaan tulis, yang setara dengan memanggil operasi PutObjectACL. Sebagai contoh, dengan menyertakan header x-oss-object-acl dalam permintaan PutObject, Anda dapat menetapkan ACL objek saat mengunggahnya.
Jika suatu bucket memiliki kebijakan retensi tingkat bucket (BucketWorm) atau kebijakan retensi tingkat objek (ObjectWorm) yang diaktifkan, Anda tidak dapat menetapkan atau mengubah ACL objek yang sedang dalam periode retensi.
Permissions
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui kebijakan RAM atau Bucket Policy.
|
API |
Action |
Description |
|
PutObjectACL |
|
Memodifikasi ACL objek dalam bucket. |
|
|
Memodifikasi ACL versi tertentu dari suatu objek. |
Request syntax
PUT /ObjectName?acl HTTP/1.1
x-oss-object-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValueRequest headers
Header | Type | Required | Example | Description |
x-oss-object-acl | String | Yes | public-read | Menentukan ACL objek. Nilai yang valid:
Untuk informasi selengkapnya tentang izin akses, lihat object ACL. |
Operasi ini juga mencakup header permintaan umum, seperti Host dan Date. Untuk informasi selengkapnya, lihat Common Request Headers.
Response headers
Semua header dalam respons terhadap permintaan DescribeRegions merupakan header respons umum. Untuk informasi selengkapnya, lihat Common response headers.
Examples
Modifikasi ACL objek dalam bucket tanpa versioning
Contoh permintaan
PUT /test-object?acl HTTP/1.1 x-oss-object-acl: public-read Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Apr 2015 05:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eContoh respons
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Wed, 29 Apr 2015 05:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSSModifikasi ACL objek dalam bucket dengan versioning
Contoh permintaan
PUT /example?acl&versionId=CAEQMhiBgIC3rpSD0BYiIDBjYTk5MmIzN2JlNjQxZTFiNGIzM2E3OTliODA0**** HTTP/1.1 x-oss-object-acl: public-read Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:30:11 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eContoh respons
HTTP/1.1 200 OK x-oss-version-id: CAEQMhiBgIC3rpSD0BYiIDBjYTk5MmIzN2JlNjQxZTFiNGIzM2E3OTliODA0**** x-oss-request-id: 5CAC3BF3B7AEADE017000624 Date: Tue, 09 Apr 2019 06:30:11 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
SDKs
Anda dapat menggunakan SDK OSS untuk bahasa pemrograman berikut untuk memanggil operasi ini:
ossutil CLI
Perintah yang sesuai dalam ossutil adalah put-object-acl.
Error codes
Error code | HTTP status code | Description |
AccessDenied | 403 | Anda bukan pemilik bucket, atau Anda tidak memiliki izin baca dan tulis untuk objek tersebut. |
InvalidArgument | 400 | Nilai x-oss-object-acl yang ditentukan tidak valid. |
FileAlreadyExists | 409 | Jika namespace hirarkis diaktifkan untuk bucket, error ini dikembalikan ketika Anda mencoba memodifikasi ACL direktori. |