All Products
Search
Document Center

Object Storage Service:PutBucketCors

Last Updated:Aug 29, 2026

Mengonfigurasi aturan Berbagi Sumber Daya Lintas Asal (CORS) untuk sebuah bucket.

Catatan penggunaan

  • Desain nonaktif secara default

    CORS dinonaktifkan secara default. Semua permintaan lintas asal tidak diizinkan.

  • Mekanisme penimpaan

    Aturan CORS baru yang dikonfigurasi oleh PutBucketCors akan menimpa semua aturan CORS sebelumnya untuk bucket tersebut.

  • Penggunaan CORS dalam aplikasi

    Anda harus memanggil PutBucketCors untuk mengonfigurasi aturan CORS sebelum menggunakan CORS dalam aplikasi.

    Misalnya, untuk mengizinkan example.com mengakses OSS melalui browser menggunakan XMLHttpRequest, konfigurasikan aturan CORS dalam format XML menggunakan operasi ini.

  • Pencocokan aturan CORS

    Ketika OSS menerima permintaan lintas asal atau permintaan OPTIONS untuk sebuah bucket, OSS memeriksa aturan CORS yang telah dikonfigurasi secara berurutan dan mengembalikan header yang sesuai untuk kecocokan pertama. Jika tidak ada aturan yang cocok, OSS tidak menyertakan header CORS dalam respons.

    Sebuah permintaan hanya cocok dengan aturan CORS jika semua kondisi berikut terpenuhi:

    • Origin permintaan sesuai dengan nilai AllowedOrigin dalam aturan tersebut.

    • Metode permintaan atau nilai header Access-Control-Request-Method sesuai dengan nilai AllowedMethod.

    • Setiap header dalam Access-Control-Request-Headers sesuai dengan nilai AllowedHeader.

Izin

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 Kebijakan Bucket.

API

Action

Deskripsi

PutBucketCors

oss:PutBucketCors

Mengonfigurasi aturan Berbagi Sumber Daya Lintas Asal (CORS) untuk sebuah bucket.

Sintaksis permintaan

PUT /?cors HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
      <AllowedOrigin>the origin you want allow CORS request from</AllowedOrigin>
      <AllowedOrigin>…</AllowedOrigin>
      <AllowedMethod>HTTP method</AllowedMethod>
      <AllowedMethod>…</AllowedMethod>
        <AllowedHeader> headers that allowed browser to send</AllowedHeader>
          <AllowedHeader>…</AllowedHeader>
          <ExposeHeader> headers in response that can access from client app</ExposeHeader>
          <ExposeHeader>…</ExposeHeader>
          <MaxAgeSeconds>time to cache pre-fight response</MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
      ...
    </CORSRule>
...
</CORSConfiguration >

Elemen permintaan

Elemen

Type

Wajib

Contoh

Deskripsi

CORSRule

Container

Ya

N/A

Container yang menyimpan aturan CORS.

Maksimum: 20 aturan CORS per bucket. Ukuran maksimum badan permintaan: 16 KB.

Node induk: CORSConfiguration

AllowedOrigin

String

Ya

*

Origin permintaan lintas asal yang diizinkan. Tentukan beberapa elemen untuk beberapa origin.

Karakter wildcard tanda bintang (*) mengizinkan semua origin. Hanya satu wildcard yang didukung per elemen.

Node induk: CORSRule

AllowedMethod

Enumeration

Ya

GET

Metode permintaan lintas asal yang diizinkan. Nilai yang valid: GET, PUT, DELETE, POST, dan HEAD.

Node induk: CORSRule

AllowedHeader

String

Tidak

Authorization

Header yang diizinkan dalam permintaan lintas asal, divalidasi terhadap Access-Control-Request-Headers dalam permintaan preflight.

Setiap header dalam Access-Control-Request-Headers harus sesuai dengan nilai AllowedHeader.

Penting

Anda hanya dapat menggunakan satu tanda bintang (*) sebagai wildcard untuk AllowedHeader. Karakter berikut tidak didukung:

  • <

  • >

  • &

  • '

  • "

Node induk: CORSRule

ExposeHeader

String

Tidak

x-oss-test

Header respons yang dapat diakses oleh aplikasi klien seperti JavaScript XMLHttpRequest.

Penting

Karakter berikut tidak didukung:

  • *

  • <

  • >

  • &

  • '

  • "

Node induk: CORSRule

MaxAgeSeconds

Integer

Tidak

100

Waktu browser dapat menyimpan cache respons preflight. Satuan: detik.

Hanya satu elemen MaxAgeSeconds yang diizinkan per aturan CORS.

Node induk: CORSRule

CORSConfiguration

Container

Ya

N/A

Container yang menyimpan konfigurasi CORS untuk bucket.

Node induk: none

ResponseVary

Boolean

Tidak

false

Apakah akan mengembalikan header Vary: Origin. Nilai yang valid:

  • true: Mengembalikan header Vary: Origin terlepas dari apakah permintaan bersifat lintas asal atau berhasil.

  • false: Tidak mengembalikan header Vary: Origin.

Penting

Hanya berlaku ketika setidaknya satu aturan CORS telah dikonfigurasi.

Operasi ini juga menggunakan Header HTTP umum.

Header respons

Respons PutBucketCors hanya berisi Header HTTP umum.

Contoh

  • Contoh permintaan

    PUT /?cors HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Length: 186
    Date: Fri, 04 May 2012 03:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration>
        <CORSRule>
          <AllowedOrigin>*</AllowedOrigin>
          <AllowedMethod>PUT</AllowedMethod>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader>Authorization</AllowedHeader>
        </CORSRule>
        <CORSRule>
          <AllowedOrigin>http://example.com</AllowedOrigin>
          <AllowedOrigin>http://example.net</AllowedOrigin>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader> Authorization</AllowedHeader>
          <ExposeHeader>x-oss-test</ExposeHeader>
          <ExposeHeader>x-oss-test1</ExposeHeader>
          <MaxAgeSeconds>100</MaxAgeSeconds>
        </CORSRule>
        <ResponseVary>false</ResponseVary>
    </CORSConfiguration >
  • Contoh respons

    HTTP/1.1 200 OK
    x-oss-request-id: 50519080C4689A033D0*****
    Date: Fri, 04 May 2012 03:21:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
    x-oss-server-time: 94

SDK

SDK OSS berikut mendukung PutBucketCors:

ossutil

Untuk informasi tentang perintah ossutil yang sesuai dengan operasi PutBucketCors, lihat put-bucket-cors.

Kode error

Kode error

Kode status HTTP

Deskripsi

InvalidDigest

400

Nilai Content-MD5 yang dihitung dari badan permintaan tidak sesuai dengan nilai Content-MD5 dalam header permintaan.