Elemen konfigurasi CORS - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Elemen konfigurasi CORS

Untuk mengonfigurasi bucket Anda agar permintaan lintas asal dapat dilakukan, Anda membuat konfigurasi CORS. Konfigurasi CORS adalah dokumen dengan elemen yang mengidentifikasi asal yang akan Anda izinkan untuk mengakses bucket, operasi (metode HTTP) yang akan Anda dukung untuk setiap asal, dan informasi spesifik operasi lainnya. Anda dapat menambahkan hingga 100 aturan ke konfigurasi. Anda dapat menambahkan konfigurasi CORS sebagai sub-sumber daya cors ke bucket.

Jika Anda mengonfigurasi CORS di konsol S3, Anda harus menggunakan JSON untuk membuat konfigurasi CORS. Konsol S3 baru hanya mendukung konfigurasi JSON CORS.

Untuk informasi lebih lanjut tentang konfigurasi CORS dan unsur-unsur di dalamnya, lihat topik di bawah ini. Untuk petunjuk tentang cara menambahkan konfigurasi CORS, lihat Berbagi sumber daya lintas asal (CORS).

penting

Pada konsol S3, konfigurasi CORS harus merupakan JSON.

Elemen AllowedMethods

Dalam konfigurasi CORS, Anda dapat menentukan nilai berikut untuk elemen AllowedMethods lainnya.

  • GET

  • PUT

  • POST

  • HAPUS

  • HEAD

Elemen AllowedOrigins

Di elemen AllowedOrigins, Anda menentukan asal yang ingin Anda izinkan permintaan lintas domainnya, misalnya, http://www.example.com. String asal hanya dapat berisi satu karakter wildcard *, seperti http://*.example.com. Anda secara opsional dapat menentukan * sebagai asal untuk mengaktifkan semua asal untuk mengirim permintaan lintas asal. Anda juga dapat menentukan https untuk hanya memungkinkan asal yang aman.

Elemen AllowedHeaders

Elemen AllowedHeaders menentukan header yang diizinkan dalam permintaan preflight melalui header Access-Control-Request-Headers. Setiap nama header di Access-Control-Request-Headers header harus cocok dengan entri yang sesuai dalam elemen. Amazon S3 hanya akan mengirimkan header yang diizinkan dalam respons yang diminta. Untuk daftar sampel header yang dapat digunakan dengan permintaan ke Amazon S3, kunjungi Header Permintaan Umum dalam panduan Referensi API Amazon Simple Storage Service.

Setiap AllowedHeaders string dalam konfigurasi Anda dapat berisi paling banyak satu karakter wildcard. Misalnya, <AllowedHeader>x-amz-*</AllowedHeader> akan mengaktifkan semua header kustom Amazon.

Elemen ExposeHeaders

Setiap ExposeHeader elemen mengidentifikasi header dalam respons yang Anda ingin pelanggan dapat mengakses dari aplikasi mereka (misalnya, dari JavaScript XMLHttpRequest objek). Untuk daftar header respons Amazon S3 umum, kunjungi Header Respons Umum dalam panduan Referensi API Amazon Simple Storage Service.

Elemen MaxAgeSeconds

Elemen MaxAgeSeconds menentukan waktu dalam hitungan detik bahwa browser Anda dapat menyimpan respons untuk permintaan preflight sebagaimana diidentifikasi oleh sumber daya, metode HTTP, dan asal.

Contoh konfigurasi CORS

Alih-alih mengakses situs web dengan menggunakan titik akhir situs web Amazon S3, Anda dapat menggunakan domain Anda sendiri, seperti example1.com untuk melayani konten Anda. Untuk informasi tentang menggunakan domain Anda sendiri, lihat Tutorial: Mengonfigurasi situs web statis menggunakan domain kustom yang terdaftar di Route 53.

Contoh konfigurasi CORS berikut memiliki tiga aturan, yang ditentukan sebagai CORSRule elemen:

  • Aturan pertama mengizinkan permintaan PUT, POST, dan DELETE lintas asal dari asal http://www.example1.com. Aturan ini juga memungkinkan semua header dalam permintaan OPSI preflight melalui header Access-Control-Request-Headers. Menanggapi permintaan OPTIONS preflight, Amazon S3 mengembalikan header yang diminta.

  • Aturan kedua mengizinkan permintaan lintas asal yang sama seperti aturan pertama, tetapi aturan tersebut berlaku untuk asal lain, http://www.example2.com.

  • Aturan ketiga memungkinkan permintaan GET lintas asal dari semua asal. Karakter wildcard * mengacu pada semua asal.

JSON
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example1.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example2.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
XML
<CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example1.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>http://www.example2.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> </CORSRule> </CORSConfiguration>

Konfigurasi CORS juga memungkinkan parameter konfigurasi opsional, seperti ditunjukkan dalam konfigurasi CORS berikut. Dalam contoh ini, konfigurasi CORS memungkinkan permintaan PUT, POST, dan DELETE lintas asal dari asal http://www.example.com.

JSON
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example.com" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 } ]
XML
<CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> <MaxAgeSeconds>3000</MaxAgeSeconds> <ExposeHeader>x-amz-server-side-encryption</ExposeHeader> <ExposeHeader>x-amz-request-id</ExposeHeader> <ExposeHeader>x-amz-id-2</ExposeHeader> </CORSRule> </CORSConfiguration>

Elemen CORSRule dalam konfigurasi sebelumnya mencakup elemen opsional berikut:

  • MaxAgeSeconds—Menentukan jumlah waktu dalam detik (dalam contoh ini, 3000) saat browser menyimpan respons Amazon S3 terhadap permintaan OPTIONS preflight untuk sumber daya yang ditentukan. Dengan menyimpan respons, browser tidak perlu mengirim permintaan preflight ke Amazon S3 jika permintaan awal akan diulang.

  • ExposeHeaders—Mengidentifikasi header respons (dalam contoh ini,, x-amz-server-side-encryptionx-amz-request-id, danx-amz-id-2) yang dapat diakses pelanggan dari aplikasi mereka (misalnya, dari objek). JavaScript XMLHttpRequest