全部产品
Search
文档中心

Object Storage Service:PutObjectACL

更新时间:Jul 02, 2025

Operasi ini digunakan untuk memodifikasi daftar kontrol akses (ACL) dari sebuah objek. Hanya pemilik bucket yang memiliki izin membaca dan menulis objek di dalam bucket yang dapat memanggil operasi ini untuk memodifikasi ACL objek.

Versioning

Secara default, operasi PutObjectACL mengonfigurasi ACL versi terkini dari sebuah objek. Anda dapat menentukan ID versi dalam permintaan untuk mengonfigurasi ACL versi tertentu dari objek tersebut.

  • Jika Anda menentukan ID versi dalam permintaan dan versi objek terkait adalah penanda hapus, OSS akan mengembalikan kesalahan 405 MethodNotAllowed.

  • Jika Anda tidak menentukan ID versi dalam permintaan dan versi terbaru objek terkait adalah penanda hapus, OSS akan mengembalikan kesalahan 404 NoSuchKey.

Ikhtisar ACL

Ketika memanggil operasi PutObjectACL, Anda dapat mengatur header x-oss-object-acl dalam permintaan untuk mengonfigurasi ACL sebuah objek. Tabel berikut menjelaskan ACL yang dapat dikonfigurasikan untuk sebuah objek.

ACL

Deskripsi

private

Objek adalah sumber daya pribadi. Hanya pemilik objek yang memiliki izin untuk membaca dan menulis objek tersebut. Pengguna lain tidak dapat mengakses objek tersebut.

public-read

Objek adalah sumber daya publik-baca. Hanya pemilik objek yang memiliki izin untuk membaca dan menulis objek ini. Pengguna lain hanya dapat membaca objek tersebut.

public-read-write

Objek adalah sumber daya publik-baca-tulis. Semua pengguna memiliki izin untuk membaca dan menulis objek tersebut.

default

ACL objek sama dengan ACL bucket tempat objek tersebut disimpan.

Catatan
  • ACL objek memiliki prioritas lebih tinggi daripada ACL bucket tempat objek disimpan. Sebagai contoh, jika sebuah objek dengan ACL public-read-write disimpan di dalam bucket dengan ACL private, semua pengguna dapat membaca dan menulis objek tersebut. Secara default, jika Anda tidak mengonfigurasi ACL objek, ACL objek tersebut akan sama dengan ACL bucket tempat objek disimpan.

  • Operasi yang membaca objek meliputi GetObject, HeadObject, CopyObject, dan UploadPartCopy, di mana CopyObject dan UploadPartCopy membaca objek sumber. Operasi yang menulis objek meliputi PutObject, PostObject, AppendObject, DeleteObject, DeleteMultipleObjects, CompleteMultipartUpload, dan CopyObject, di mana CopyObject menulis objek tujuan.

  • Saat memanggil operasi untuk menulis objek, Anda dapat menyertakan header x-oss-object-acl dalam permintaan untuk mengonfigurasi ACL objek tersebut. Sebagai contoh, Anda dapat menyertakan header x-oss-object-acl dalam permintaan PutObject untuk mengonfigurasi ACL objek yang akan diunggah.

Sintaksis

PUT /ObjectName?acl HTTP/1.1
x-oss-object-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

Header permintaan

Header

Tipe

Diperlukan

Contoh

Deskripsi

x-oss-object-acl

String

Ya

public-read

Daftar kontrol akses (ACL) dari objek.

Nilai yang valid:

  • default (default): ACL objek sama dengan ACL bucket tempat objek tersebut disimpan.

  • private: ACL objek adalah pribadi. Hanya pemilik objek dan pengguna yang berwenang yang memiliki izin baca dan tulis pada objek tersebut.

  • public-read: ACL objek adalah publik-baca. Hanya pemilik objek dan pengguna yang berwenang yang memiliki izin baca dan tulis pada objek tersebut. Pengguna lain hanya memiliki izin baca pada objek tersebut. Berhati-hatilah saat menggunakan ACL ini.

  • public-read-write: ACL objek adalah publik-baca-tulis. Semua pengguna memiliki izin baca dan tulis pada objek tersebut. Berhati-hatilah saat menggunakan ACL ini.

Untuk informasi lebih lanjut, lihat ACL Objek.

Untuk informasi lebih lanjut tentang header permintaan umum dalam permintaan PutObjectACL, seperti Host dan Date, lihat Header Permintaan Umum.

Header respons

Semua header dalam respons terhadap permintaan PutObjectACL merupakan header respons umum. Untuk informasi lebih lanjut, lihat Header Respons Umum.

Contoh

  • Modifikasi ACL objek dalam bucket tanpa versi

    Permintaan Contoh

    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: OSS qn6q**************:77Dv****************

    Respons Contoh

    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: AliyunOSS
  • Modifikasi ACL objek dalam bucket dengan versi

    Permintaan Contoh

    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: OSS qn6q**************:77Dv****************

    Respons Contoh

    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

OSS SDK

Anda dapat menggunakan OSS SDK untuk bahasa pemrograman berikut guna memanggil operasi PutObjectACL:

ossutil

Untuk informasi tentang perintah ossutil yang sesuai dengan operasi PutObjectACL, lihat put-object-acl.

Kode kesalahan

Kode kesalahan

Status HTTP

Deskripsi

AccessDenied

403

Anda bukan pemilik bucket atau tidak memiliki izin untuk membaca dan menulis objek yang ingin Anda modifikasi ACL-nya.

InvalidArgument

400

Nilai x-oss-object-acl yang ditentukan tidak valid.

FileAlreadyExists

409

Objek yang ingin Anda modifikasi ACL-nya adalah direktori dalam bucket yang fitur namespace hierarkisnya diaktifkan.