全部产品
Search
文档中心

Object Storage Service:PutBucketCors

更新时间:Aug 02, 2025

Mengonfigurasi aturan berbagi sumber daya lintas asal (CORS) untuk sebuah bucket Object Storage Service (OSS).

Catatan penggunaan

  • Nonaktif secara Default

    Secara default, CORS dinonaktifkan untuk sebuah bucket. Semua permintaan lintas asal tidak diizinkan.

  • Mekanisme Penimpaan

    Jika Anda memanggil operasi PutBucketCors untuk mengonfigurasi aturan CORS baru pada bucket yang sudah memiliki aturan CORS, aturan yang ada akan ditimpa.

  • Penggunaan CORS dalam Aplikasi

    Sebelum menggunakan CORS dalam aplikasi, Anda harus memanggil operasi PutBucketCors untuk mengonfigurasi aturan CORS dan mengaktifkan CORS.

    Sebagai contoh, jika Anda ingin example.com mengakses OSS menggunakan XMLHttpRequest dari browser, Anda harus memanggil operasi ini untuk mengonfigurasi aturan CORS dalam format XML.

  • Pencocokan Aturan CORS

    Ketika OSS menerima permintaan lintas asal atau permintaan OPTIONS yang ditujukan ke sebuah bucket, OSS membaca aturan CORS yang dikonfigurasi untuk bucket tersebut dan mencoba mencocokkan aturan satu per satu. Jika ditemukan kecocokan pertama, OSS mengembalikan header yang sesuai. Jika permintaan gagal mencocokkan salah satu aturan CORS, OSS tidak menyertakan header CORS dalam respons.

    OSS menganggap bahwa permintaan lintas asal atau permintaan OPTIONS cocok dengan aturan CORS hanya ketika permintaan memenuhi kondisi berikut:

    • Asal permintaan lintas asal cocok dengan nilai salah satu elemen AllowedOrigin dalam aturan CORS.

    • Metode permintaan (seperti GET atau PUT) atau metode yang sesuai dengan header Access-Control-Request-Method dari permintaan OPTIONS harus cocok dengan salah satu item AllowedMethod.

    • Setiap header yang disertakan dalam Access-Control-Request-Headers dalam permintaan OPTIONS harus cocok dengan nilai salah satu elemen AllowedHeader dalam aturan CORS.

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 RAM Policy atau Bucket Policy.

API

Aksi

Definisi

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>asal yang ingin Anda izinkan untuk permintaan CORS</AllowedOrigin>
      <AllowedOrigin>…</AllowedOrigin>
      <AllowedMethod>metode HTTP</AllowedMethod>
      <AllowedMethod>…</AllowedMethod>
        <AllowedHeader>header yang diizinkan untuk dikirim oleh browser</AllowedHeader>
          <AllowedHeader>…</AllowedHeader>
          <ExposeHeader>header dalam respons yang dapat diakses dari aplikasi klien</ExposeHeader>
          <ExposeHeader>…</ExposeHeader>
          <MaxAgeSeconds>waktu untuk menyimpan respons preflight</MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
      ...
    </CORSRule>
...
</CORSConfiguration >

Elemen permintaan

Elemen

Tipe

Diperlukan

Contoh

Deskripsi

CORSRule

Kontainer

Ya

N/A

Kontainer yang menyimpan aturan CORS.

Anda dapat mengonfigurasi hingga 20 aturan CORS untuk sebuah bucket. Badan pesan XML dalam permintaan dapat berukuran hingga 16 KB.

Node induk: CORSConfiguration

AllowedOrigin

String

Ya

*

Asal dari mana permintaan lintas asal diizinkan. Anda dapat menggunakan beberapa elemen untuk menentukan beberapa asal yang diizinkan.

Anda hanya dapat menggunakan satu tanda bintang (*) sebagai wildcard untuk AllowedOrigin. Jika Anda menyetel AllowedOrigin ke tanda bintang (*), semua permintaan lintas asal diizinkan.

Node induk: CORSRule

AllowedMethod

Enumerasi

Ya

GET

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

Node induk: CORSRule

AllowedHeader

String

Tidak

Authorization

Menentukan apakah header yang ditentukan oleh Access-Control-Request-Headers dalam permintaan preflight OPTIONS diizinkan.

Setiap header yang ditentukan oleh Access-Control-Request-Headers harus cocok dengan nilai elemen 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 untuk permintaan akses yang diizinkan dari aplikasi, seperti objek XMLHttpRequest dalam JavaScript.

Penting

Karakter berikut tidak didukung:

  • *

  • <

  • >

  • &

  • '

  • "

Node induk: CORSRule

MaxAgeSeconds

Integer

Tidak

100

Periode waktu dalam mana browser dapat menyimpan respons terhadap permintaan preflight OPTIONS untuk sumber daya yang ditentukan. Unit: detik.

Anda hanya dapat menentukan satu elemen MaxAgeSeconds dalam aturan CORS.

Node induk: CORSRule

CORSConfiguration

Kontainer

Ya

N/A

Kontainer yang menyimpan konfigurasi CORS untuk bucket.

Node induk: none

ResponseVary

Boolean

Tidak

false

Menentukan apakah akan mengembalikan header Vary: Origin. Nilai valid:

  • true: mengembalikan header Vary: Origin, terlepas dari apakah permintaan adalah permintaan lintas asal atau apakah permintaan lintas asal berhasil.

  • false: tidak mengembalikan header Vary: Origin.

Penting

Elemen ini valid hanya ketika setidaknya satu aturan CORS dikonfigurasi.

Untuk informasi lebih lanjut tentang header permintaan umum dalam operasi ini, lihat Header HTTP Umum.

Header respons

Respons terhadap permintaan PutBucketCors hanya berisi header respons umum. Untuk informasi lebih lanjut, lihat Header HTTP Umum.

Contoh

  • Permintaan Sampel

    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 >
  • Respons Sampel

    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

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

ossutil

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

Kode kesalahan

Kode kesalahan

Status HTTP

Deskripsi

InvalidDigest

400

Nilai Content-MD5 yang dihitung oleh OSS berdasarkan badan permintaan berbeda dengan nilai Content-MD5 yang ditentukan dalam header permintaan.