View a markdown version of this page

Membuat Formulir HTML (Menggunakan AWS Versi Tanda Tangan 4) - Amazon Simple Storage Service

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

Membuat Formulir HTML (Menggunakan AWS Versi Tanda Tangan 4)

Untuk mengizinkan pengguna mengunggah konten ke Amazon S3 dengan menggunakan browser mereka (permintaan HTTP POST), Anda menggunakan formulir HTML. Formulir HTML terdiri dari deklarasi formulir dan bidang formulir. Deklarasi formulir berisi informasi tingkat tinggi mengenai permintaan tersebut. Bidang formulir berisi informasi permintaan terperinci.

Bagian ini menjelaskan cara membuat formulir HTML. Untuk contoh kerja unggahan berbasis browser menggunakan HTTP POST dan perhitungan tanda tangan terkait untuk otentikasi permintaan, lihatContoh: Browser-Based Unggah menggunakan HTTP POST (Menggunakan AWS Versi Tanda Tangan 4).

Bentuk dan kebijakan harus di UTF-8 kodekan. Anda dapat menerapkan UTF-8 pengkodean ke formulir dengan menentukan charset=UTF-8 dalam content atribut. Berikut ini adalah contoh peng UTF-8 kodean dalam judul HTML.

<html> <head> ... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ... </head> <body>

Berikut ini adalah contoh peng UTF-8 kodean dalam header permintaan.

Content-Type: text/html; charset=UTF-8
catatan

Data formulir dan batas (tidak termasuk isi file) tidak boleh melebihi 20KB.

Deklarasi Formulir HTML

Deklarasi formulir HTML memiliki tiga atribut berikut:

  • action— URL yang memproses permintaan, yang harus disetel ke URL bucket. Misalnya, jika nama bucket Anda adalahexamplebucket, URL-nya adalahhttp://examplebucket.s3.amazonaws.com/.

    catatan

    Nama kunci ditentukan dalam bidang formulir.

  • method— Metode harus POST.

  • enctype- Jenis penutup (enctype) harus disetel ke multipart/form -data untuk unggahan file dan unggahan area teks. Untuk informasi lebih lanjut tentangenctype, lihat RFC 1867.

Ini adalah deklarasi formulir untuk emberexamplebucket.

<form action="http://examplebucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data">

Bidang Formulir HTML

Tabel berikut menjelaskan daftar bidang yang dapat Anda gunakan dalam formulir. Di antara bidang lainnya, ada bidang tanda tangan yang dapat Anda gunakan untuk mengotentikasi permintaan. Ada bidang bagi Anda untuk menentukan algoritma perhitungan tanda tangan (x-amz-algorithm), cakupan kredensia (x-amz-credential) yang Anda gunakan untuk menghasilkan kunci penandatanganan, dan tanggal (x-amz-date) yang digunakan untuk menghitung tanda tangan. Amazon S3 menggunakan informasi ini untuk membuat ulang tanda tangan. Jika tanda tangan cocok, Amazon S3 memproses permintaan.

catatan

Variabel ${filename} secara otomatis diganti dengan nama file yang diberikan oleh pengguna dan dikenali oleh semua bidang formulir. Jika browser atau klien menyediakan jalur penuh atau sebagian ke file, hanya teks yang mengikuti garis miring terakhir (/) atau garis miring terbalik (\) yang digunakan (misalnya, C:\Program Files\directory1\file.txt ditafsirkan sebagai). file.txt Jika tidak ada nama file atau file yang diberikan, maka variabel diganti dengan string kosong.

Jika Anda tidak menyediakan elemen yang diperlukan untuk permintaan yang diautentikasi, seperti policy elemen, permintaan diasumsikan anonim dan akan berhasil hanya jika Anda telah mengonfigurasi bucket untuk baca dan tulis publik.

Nama Elemen Deskripsi Diperlukan
acl

Daftar kontrol akses (ACL) Amazon S3. Jika ACL tidak valid ditentukan, Amazon S3 menolak permintaan tersebut. Untuk informasi selengkapnya tentang ACL, lihat Menggunakan Amazon S3 AC L.

Tipe: String

Default: privat

Nilai Valid: private | public-read | public-read-write | aws-exec-read | authenticated-read | bucket-owner-read | bucket-owner-full-control

Tidak

Cache-Control

Content-Type

Content-Disposition

Content-Encoding

Expires

REST-specific tajuk. Untuk informasi selengkapnya, lihat PutObject.

Tidak

key

Nama kunci dari objek yang diunggah.

Untuk menggunakan nama file yang disediakan oleh pengguna, gunakan variabel $ {filename}. Misalnya, jika Anda mengunggah file photo1.jpg dan Anda menentukan /user/user1/${filename} sebagai nama kunci, file tersebut disimpan sebagai/user/user1/photo1.jpg.

Untuk informasi selengkapnya, lihat Kunci Objek dan Metadata di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Ya

policy

Kebijakan keamanan yang dikodekan base64 yang menjelaskan apa yang diizinkan dalam permintaan. Untuk permintaan yang diautentikasi, kebijakan diperlukan.

Permintaan tanpa kebijakan keamanan dianggap anonim dan hanya akan berhasil pada bucket yang dapat ditulis secara publik.

Diperlukan untuk permintaan yang diautentikasi

success_action_redirect

URL yang akan diarahkan klien setelah unggahan berhasil.

Jika tidak success_action_redirect ditentukan, atau Amazon S3 tidak dapat menafsirkan URL, Amazon S3 mengembalikan jenis dokumen kosong yang ditentukan di success_action_status bidang.

Jika unggahan gagal, Amazon S3 mengembalikan kesalahan dan tidak mengarahkan pengguna ke URL lain.

Tidak

success_action_status

Kode status dikembalikan ke klien setelah berhasil diunggah jika tidak success_action_redirect ditentukan.

Nilai yang valid adalah200,201, atau 204 (default).

Jika nilai disetel ke 200 atau 204, Amazon S3 mengembalikan dokumen kosong dengan kode status yang ditentukan.

Jika nilai diatur ke 201, maka Amazon S3 akan mengembalikan dokumen XML dengan kode status 201. Untuk informasi tentang konten dokumen XML, lihatObjek POST.

Jika nilai tidak disetel atau tidak valid, Amazon S3 mengembalikan dokumen kosong dengan kode status 204.

catatan

Beberapa versi dari Adobe Flash player tidak menangani respons HTTP dengan baik pada bodi kosong. Untuk mendukung pengunggahan melalui Adobe Flash, sebaiknya atur success_action_status menjadi 201.

Tidak

x-amz-algorithm

Algoritma penandatanganan digunakan untuk mengotentikasi permintaan. Untuk AWS Signature Version 4, nilainya adalahAWS4-HMAC-SHA256.

Bidang ini wajib diisi jika dokumen kebijakan disertakan bersama permintaan.

Diperlukan untuk permintaan yang diautentikasi

x-amz-credential

Selain ID kunci akses Anda, bidang ini juga menyediakan informasi cakupan 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:

<your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

Contoh:

AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request

Untuk Amazon S3, string aws-service adalah. s3 Untuk daftar aws-region string Amazon S3, lihat Wil ayah dan Titik Akhir di Referensi Umum AWS. Ini diperlukan jika dokumen kebijakan disertakan dengan permintaan.

Diperlukan untuk permintaan yang diautentikasi

x-amz-date

Ini adalah nilai tanggal dalam format ISO8601. Misalnya, 20130728T000000Z.

Ini adalah tanggal yang sama yang Anda gunakan dalam membuat kunci penandatanganan (misalnya, 20130728). Nilai ini juga harus sama dengan yang Anda berikan dalam kebijakan (x-amz-date) yang Anda tandatangani.

Ini diperlukan jika dokumen kebijakan disertakan dengan permintaan.

Diperlukan untuk permintaan yang diautentikasi

x-amz-security-token

Token keamanan yang digunakan oleh Amazon DevPay dan kredenSIAL sesi

Jika permintaan menggunakan Amazon DevPay, diperlukan dua bidang x-amz-security-token formulir: satu untuk token produk dan satu untuk token pengguna. Untuk informasi selengkapnya, lihat Menggunakan DevPay di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Jika permintaan menggunakan kredentif sesi, diperlukan satu x-amz-security-token formulir. Untuk informasi lebih lanjut, lihat Meminta Kredensial Keamanan Sementara dalam Panduan Pengguna IAM.

Tidak

x-amz-signature

(AWS Signature Version 4) HMAC-SHA256 Hash dari kebijakan keamanan.

Bidang ini wajib diisi jika dokumen kebijakan disertakan bersama permintaan.

Diperlukan untuk permintaan yang diautentikasi

x-amz-meta-*

Nama bidang yang dimulai dengan awalan ini adalah metadata yang ditentukan pengguna. Masing-masing disimpan dan dikembalikan sebagai satu set pasangan kunci-nilai. Amazon S3 tidak memvalidasi atau menafsirkan metadata yang ditentukan pengguna. Untuk informasi selengkapnya, lihat PutObject.

Tidak

x-amz-*

Lihat Objek POST (Objek POSTuntuk x-amz-* header lainnya.

Tidak

file

Konten file atau teks.

File atau konten harus menjadi bidang terakhir dalam formulir.

Anda tidak dapat mengunggah lebih dari satu file sekaligus.

Ya

Item bersyarat diperlukan untuk permintaan yang diautentikasi dan opsional untuk permintaan anonim.

Sekarang setelah Anda tahu cara membuat formulir, selanjutnya Anda dapat membuat kebijakan keamanan yang dapat Anda tandatangani. Untuk informasi selengkapnya, lihat Kebijakan POST.