Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kebijakan POST
Kebijakan yang diperlukan untuk membuat permintaan yang diautentikasi menggunakan HTTP POST adalah dokumen yang UTF-8 dikodekan base64 yang ditulis dalam JavaScript Object Notation (JSON) yang menentukan kondisi yang harus dipenuhi permintaan. Bergantung pada cara Anda mendesain dokumen kebijakan, Anda dapat mengontrol perincian akses per unggahan, per pengguna, untuk semua unggahan, atau sesuai dengan desain lain yang memenuhi kebutuhan Anda.
Bagian ini menjelaskan kebijakan POST. Misalnya perhitungan tanda tangan menggunakan kebijakan POST, lihatContoh: Browser-Based Unggah menggunakan HTTP POST (Menggunakan AWS Versi Tanda Tangan 4).
catatan
Meskipun dokumen kebijakan bersifat opsional, kami sangat menyarankan Anda menggunakannya untuk mengontrol apa yang diizinkan dalam permintaan. Jika Anda membuat bucket dapat ditulis secara publik, Anda tidak memiliki kendali sama sekali atas pengguna mana yang dapat menulis ke bucket Anda.
Berikut ini adalah contoh dokumen kebijakan POST.
{ "expiration": "2007-12-01T12:00:00.000Z", "conditions": [ {"acl": "public-read" }, {"bucket": "johnsmith" }, ["starts-with", "$key", "user/eric/"], ] }
Kebijakan POST selalu berisi conditions elemen expiration dan. Kebijakan contoh menggunakan dua jenis pencocokan kondisi (pencocokan tepat dan mulai dengan pencocokan). Bagian berikut menjelaskan elemen-elemen ini.
Kedaluwarsa
expirationElemen menentukan tanggal kedaluwarsa dan waktu kebijakan POST dalam format tanggal ISO8601 GMT. Misalnya, 2013-08-01T12:00:00.000Z menentukan bahwa kebijakan POST tidak valid setelah tengah malam GMT pada 1 Agustus 2013.
Pencocokan Kondisi
Berikut adalah tabel yang menjelaskan jenis pencocokan kondisi yang dapat Anda gunakan untuk menentukan kondisi kebijakan POST (dijelaskan di bagian selanjutnya). Meskipun Anda harus menentukan setidaknya satu kondisi untuk setiap bidang formulir yang Anda tentukan dalam formulir, Anda dapat membuat kriteria pencocokan yang lebih kompleks dengan menentukan beberapa kondisi untuk bidang formulir.
| Jenis Pencocokan Kondisi | Deskripsi |
|---|---|
|
Kecocokan yang Tepat |
Nilai bidang formulir harus sesuai dengan nilai yang ditentukan. Contoh ini menunjukkan bahwa ACL harus diatur ke baca publik:
Contoh ini adalah cara alternatif untuk menunjukkan bahwa ACL harus diatur ke baca publik:
|
|
Dimulai Dengan |
Nilai harus dimulai dengan nilai yang ditentukan. Contoh ini menunjukkan bahwa kunci objek harus dimulai dengan user/user1:
|
|
Mencoco Content-Types kkan dalam Comma-Separated Daftar |
Content-Types nilai untuk
Nilai berikut akan melewati kondisi:
Nilai berikut tidak akan melewati kondisi:
catatanElemen data |
|
Mencocokkan Konten Apa Pun |
Untuk mengonfigurasi kebijakan POST untuk mengizinkan konten apa pun dalam bidang formulir, gunakan
|
|
Menentukan Rentang |
Untuk bidang formulir yang menerima rentang, pisahkan batas atas dan bawah dengan koma. Contoh ini memungkinkan ukuran file dari 1 hingga 10 MiB:
|
Kondisi spesifik yang didukung dalam kebijakan POST dijelaskan diKetentuan.
Ketentuan
Kebijakan conditions dalam POST adalah array objek, yang masing-masing digunakan untuk memvalidasi permintaan. Anda dapat menggunakan kondisi ini untuk membatasi apa yang diizinkan dalam permintaan. Misalnya, kondisi kebijakan sebelumnya memerlukan hal berikut:
-
Permintaan harus menentukan nama
johnsmithbucket. -
Nama kunci objek harus memiliki
user/ericawalan. -
Objek ACL harus disetel ke
public-read.
Setiap bidang formulir yang Anda tentukan dalam formulir (kecuali x-amz-signaturefile,policy,, dan nama bidang yang memiliki x-ignore- awalan) harus muncul dalam daftar kondisi.
catatan
Semua variabel dalam formulir diperluas sebelum memvalidasi kebijakan POST. Oleh karena itu, semua pencocokan kondisi harus bertentangan dengan bidang formulir yang diperluas. Misalkan Anda ingin membatasi nama kunci objek Anda ke awalan tertentu (user/user1). Dalam hal ini, Anda mengatur bidang formulir kunci keuser/user1/${filename}. Kebijakan POST Anda harus [
"starts-with", "$key", "user/user1/" ] (jangan masuk[
"starts-with", "$key", "user/user1/${filename}" ]). Untuk informasi selengkapnya, lihat Pencocokan Kondisi.
Kondisi dokumen kebijakan dijelaskan dalam tabel berikut.
| Nama Elemen | Deskripsi |
|---|---|
acl |
Menentukan nilai ACL yang harus digunakan dalam pengiriman formulir. Kondisi ini mendukung pencocokan tepat dan jenis kecocokan |
bucket |
Menentukan nama bucket yang dapat diterima. Kondisi ini mendukung jenis kecocokan kondisi pencocokan yang tepat. |
content-length-range |
Ukuran minimum dan maksimum yang diijinkan untuk konten yang diunggah. Kondisi ini mendukung tipe kec |
Cache-Control
|
REST-specific tajuk. Untuk informasi selengkapnya, lihat Objek POST. Kondisi ini mendukung pencocokan yang tepat dan jenis kecocokan |
key |
Nama kunci yang dapat diterima atau awalan dari objek yang diunggah. Kondisi ini mendukung pencocokan yang tepat dan jenis kecocokan |
success_action_redirect
|
URL yang akan diarahkan klien setelah unggahan berhasil. Kondisi ini mendukung pencocokan yang tepat dan jenis kecocokan |
success_action_status |
Kode status dikembalikan ke klien setelah berhasil diunggah jika tidak Kondisi ini mendukung pencocokan yang tepat. |
x-amz-algorithm |
Algoritma penandatanganan yang harus digunakan selama perhitungan tanda tangan. Untuk AWS Signature Version 4, nilainya adalah Kondisi ini mendukung pencocokan yang tepat. |
x-amz-credential |
KredenSIAL yang Anda gunakan untuk menghitung tanda tangan. Ini menyediakan ID kunci akses dan informasi ruang lingkup yang mengidentifikasi wilayah dan layanan yang tanda tangannya valid. Ini harus menjadi cakupan yang sama yang Anda gunakan dalam menghitung kunci penandatanganan untuk perhitungan tanda tangan. Ini adalah string dari bentuk berikut:
Contoh:
Untuk Amazon S3, string aws-service adalah. Kondisi ini mendukung pencocokan yang tepat. |
x-amz-date |
Nilai tanggal yang ditentukan dalam string berformat ISO8601. Misalnya, Ini diperlukan jika dokumen kebijakan POST disertakan dengan permintaan. Kondisi ini mendukung pencocokan yang tepat. |
x-amz-security-token |
Token DevPay keamanan Amazon. Setiap permintaan yang menggunakan Amazon DevPay memerlukan dua bidang Untuk informasi selengkapnya tentang Amazon DevPay, lihat Menggunakan DevPay di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. |
x-amz-meta-* |
User-specified metadata. Kondisi ini mendukung pencocokan yang tepat dan jenis kecocokan |
x-amz-* |
Lihat Objek POST (Objek POSTuntuk Kondisi ini mendukung pencocokan yang tepat. |
catatan
Jika toolkit menambahkan lebih banyak bidang formulir (misalnya, Flash menambahkanfilename), Anda harus menambahkannya ke dokumen kebijakan POST. Jika Anda dapat mengontrol fungsi ini, tambahkan awalan x-ignore- pada bidang tersebut sehingga Amazon S3 mengabaikan fitur tersebut dan tidak akan memengaruhi versi fitur ini di masa mendatang.
Karakter Melarikan Diri
Karakter yang harus dihilangkan dalam dokumen kebijakan POST dijelaskan dalam tabel berikut.
| Urutan Melarikan Diri | Deskripsi |
|---|---|
|
\\ |
Garis miring terbalik |
|
\$ |
Simbol dolar |
|
\b |
Spasi Mundur |
|
\f |
Umpan formulir |
|
\n |
Baris baru |
|
\r |
Kembali ke awal baris |
|
\t |
Tab Horizontal |
|
\v |
Tab vertikal |
|
\ u |
Semua karakter Unicode |
Sekarang setelah Anda mengenal formulir dan kebijakan, dan memahami cara kerja penandatanganan, Anda dapat mencoba contoh unggahan POST. Anda perlu menulis kode untuk menghitung tanda tangan. Contoh ini menyediakan formulir sampel, dan kebijakan POST yang dapat Anda gunakan untuk menguji perhitungan tanda tangan Anda. Untuk informasi selengkapnya, lihat Contoh: Browser-Based Unggah menggunakan HTTP POST (Menggunakan AWS Versi Tanda Tangan 4).