Elemen CORS konfigurasi - 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 CORS konfigurasi

Untuk mengonfigurasi bucket agar memungkinkan permintaan lintas asal, Anda membuat CORS konfigurasi. CORSKonfigurasi adalah dokumen dengan elemen yang mengidentifikasi asal yang akan Anda izinkan untuk mengakses bucket Anda, operasi (HTTPmetode) yang akan Anda dukung untuk setiap asal, dan informasi spesifik operasi lainnya. Anda dapat menambahkan hingga 100 aturan ke konfigurasi. Anda dapat menambahkan CORS konfigurasi sebagai cors subresource ke bucket.

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

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

penting

Di konsol S3, CORS konfigurasi harusJSON.

Elemen AllowedMethods

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

  • GET

  • PUT

  • POST

  • DELETE

  • 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 contoh header yang dapat digunakan dalam permintaan ke Amazon S3, buka Header Permintaan Umum di panduan Referensi Layanan Penyimpanan API Sederhana Amazon.

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 yang umum, buka Header Respons Umum di panduan Referensi Layanan Penyimpanan Sederhana Amazon. API

Elemen MaxAgeSeconds

MaxAgeSecondsElemen menentukan waktu dalam hitungan detik browser Anda dapat menyimpan respons untuk permintaan preflight seperti yang diidentifikasi oleh sumber daya, HTTP metode, dan asal.

Contoh CORS konfigurasi

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 CORS konfigurasi berikut memiliki tiga aturan, yang ditentukan sebagai CORSRule elemen:

  • Aturan pertama memungkinkan cross-originPUT,POST, dan DELETE permintaan dari http://www.example1.com asal. Aturan ini juga memungkinkan semua header dalam OPTIONS permintaan preflight melalui header. Access-Control-Request-Headers Menanggapi OPTIONS permintaan 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 GET permintaan 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>

CORSKonfigurasi ini juga memungkinkan parameter konfigurasi opsional, seperti yang ditunjukkan pada CORS konfigurasi berikut. Dalam contoh ini, CORS konfigurasi memungkinkan cross-originPUT,POST, dan DELETE permintaan dari http://www.example.com asal.

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 hitungan detik (dalam contoh ini, 3000) browser menyimpan respons Amazon S3 ke permintaan preflight OPTIONS 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