

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

# Formulir HTML (AWS tanda tangan versi 2)
<a name="HTTPPOSTForms"></a>

**Topics**
+ [Pengodean formulir HTML](#HTTPPOSTFormEncoding)
+ [Deklarasi formulir HTML](#HTTPPOSTFormDeclaration)
+ [Bidang formulir HTML](#HTTPPOSTFormFields)
+ [Konstruksi kebijakan](#HTTPPOSTConstructPolicy)
+ [Membuat tanda tangan](#HTTPPOSTConstructingPolicySignature)
+ [Pengalihan](#HTTPPOSTConstructingPolicyRedirection)

Saat berkomunikasi dengan Amazon S3, Anda biasanya menggunakan REST atau SOAP API untuk menjalankan, mendapatkan, menghapus, dan melakukan operasi lainnya. Dengan POST, pengguna mengunggah data secara langsung ke Amazon S3 melalui peramban mereka, yang tidak dapat memproses SOAP API atau membuat permintaan REST `PUT`.

**catatan**  
 SOAP API untuk Amazon S3 tidak tersedia untuk pelanggan baru, dan mendekati End of Life (EOL) pada 31 Agustus 2025. Kami menyarankan Anda menggunakan REST API atau AWS SDK. 

Agar pengguna dapat mengunggah konten ke Amazon S3 dengan menggunakan peramban mereka, Anda perlu menggunakan formulir HTML. Formulir HTML terdiri dari deklarasi formulir dan bidang formulir. Deklarasi formulir berisi informasi tingkat tinggi mengenai permintaan tersebut. Kolom formulir berisi informasi terperinci tentang permintaan, serta kebijakan yang digunakan untuk mengautentikasi permintaan tersebut dan memastikan bahwa permintaan tersebut memenuhi persyaratan yang Anda tentukan.

**catatan**  
Data formulir dan batasannya (tidak termasuk isi file) tidak boleh lebih dari 20 KB.

Bagian ini menjelaskan cara menggunakan formulir HTML.

## Pengodean formulir HTML
<a name="HTTPPOSTFormEncoding"></a>

Bentuk dan kebijakan harus di UTF-8 kodekan. Anda dapat menerapkan UTF-8 pengkodean ke formulir dengan menentukannya di judul HTML atau sebagai header permintaan.

**catatan**  
 Deklarasi formulir HTML tidak menerima parameter-parameter autentikasi string kueri. 

Berikut ini adalah contoh peng UTF-8 kodean dalam judul HTML:

```
1. <html>
2.   <head>
3.     ...
4.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5.     ...
6.   </head>
7.   <body>
```

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

```
1. Content-Type: text/html; charset=UTF-8
```

## Deklarasi formulir HTML
<a name="HTTPPOSTFormDeclaration"></a>

Deklarasi formulir memiliki tiga komponen, yakni: aksi, metode, dan jenis enklosure. Jika salah satu dari nilai ini tidak sesuai, maka permintaan tersebut gagal.

Tindakan ini menentukan URL yang memproses permintaan, yang harus diatur ke URL bucket. Sebagai contoh, jika nama bucket Anda adalah `awsexamplebucket1` dan Wilayahnya adalah AS Barat (California Utara), URL-nya adalah `https://awsexamplebucket1.s3.us-west-1.amazonaws.com/`.‏

**catatan**  
Nama kunci ditentukan dalam bidang formulir.

Metodenya harus POST.

Jenis penutup (enctype) harus ditentukan dan harus disetel ke multipart/form -data untuk unggahan file dan unggahan area teks. Untuk informasi selengkapnya, buka [RFC 1867](http://www.ietf.org/rfc/rfc1867.txt).

**Example**  
Contoh berikut adalah deklarasi formulir untuk bucket “awsexamplebucket1”.  

```
1. <form action="https://awsexamplebucket1.s3.us-west-1.amazonaws.com/" method="post"
2. 
3. enctype="multipart/form-data">
```

## Bidang formulir HTML
<a name="HTTPPOSTFormFields"></a>

Tabel berikut menjelaskan bidang yang dapat digunakan dalam sebuah formulir HTML.

**catatan**  
Variabel `${filename}` secara otomatis diganti dengan nama file yang diberikan oleh pengguna dan dikenali oleh semua bidang formulir. Jika peramban atau klien menyediakan jalur penuh atau sebagian ke file, maka hanya teks yang ada setelah garis miring terakhir (/) atau garsi miring terbalik (\\) yang akan digunakan. Sebagai contoh, "C:\\Program Files\\directory1\\file.txt" akan diinterpretasikan sebagai "file.txt". Jika tidak ada nama file atau file yang diberikan, maka variabel diganti dengan string kosong.


| Nama bidang | Deskripsi | Diperlukan | 
| --- | --- | --- | 
| AWSAccessKeyId | ID K AWS unci Akses pemilik bucket yang memberikan akses pengguna anonim untuk permintaan yang memenuhi kumpulan batasan dalam kebijakan. Kolom ini wajib diisi jika permintaan menyertakan dokumen kebijakan. | Bersyarat | 
| acl | Daftar kontrol akses (ACL) Amazon S3. Jika ternyata daftar kontrol akses yang ditentukan tidak valid, maka akan muncul pesan kesalahan.<br />Tipe: String<br />Default: privat<br /> 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 [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html). | Tidak | 
| key | Nama kunci yang diunggah.<br />Untuk menggunakan nama file yang diberikan oleh pengguna, gunakan variabel ${filename}. Misalnya, jika pengguna Betty mengunggah file lolcatz.jpg dan Anda menentukan/user/betty/$ {filename}, file tersebut disimpan sebagai//lolcatz.jpg. user/betty<br />Untuk informasi lebih lanjut, lihat [Bekerja dengan objek metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html). | Ya | 
| policy | Kebijakan keamanan yang menjelaskan apa yang diizinkan dalam permintaan. Permintaan yang tidak memiliki kebijakan keamanan dianggap anonim dan hanya akan berhasil pada bucket yang dapat ditulis oleh publik.  | Tidak | 
| success\_action\_redirect, redirect | URL yang akan diarahkan klien setelah unggahan berhasil. Amazon S3 menambahkan nilai bucket, kunci, dan etag sebagai parameter string kueri ke URL.<br />Jika success\_action\_redirect tidak ditentukan, maka Amazon S3 akan mengembalikan jenis dokumen kosong yang ditentukan dalam bidang success\_action\_status.<br />Jika Amazon S3 tidak dapat menginterpretasikan URL, maka Amazon S3 akan mengabaikan bidang tersebut.<br />Jika pengunggahan gagal, maka Amazon S3 akan menampilkan pesan kesalahan dan tidak akan mengalihkan pengguna ke URL.<br />Untuk informasi selengkapnya, lihat [Pengalihan](#HTTPPOSTConstructingPolicyRedirection).   Nama bidang pengalihan telah dihilangkan dan dukungan untuk nama bidang pengalihan akan dihapus di masa mendatang.   | Tidak | 
| success\_action\_status | Kode status dikembalikan kepada klien setelah berhasil mengunggah jika success\_action\_redirect tidak ditentukan.<br />Nilai yang valid adalah 200, 201, atau 204 (default).<br />Jika nilai diatur ke 200 atau 204, maka Amazon S3 akan mengembalikan dokumen kosong dengan kode status 200 atau 204.<br />Jika nilai diatur ke 201, maka Amazon S3 akan mengembalikan dokumen XML dengan kode status 201. Untuk informasi tentang konten dokumen XML, lihat [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html).<br />Jika nilai tidak diatur atau jika diatur dengan nilai yang tidak valid, maka Amazon S3 akan mengembalikan dokumen kosong dengan kode status 204.  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 | 
| signature | Tanda tangan HMAC dibangun dengan menggunakan kunci akses rahasia yang sesuai dengan yang disediakanAWSAccessKeyId. Bidang ini wajib diisi jika dokumen kebijakan disertakan bersama permintaan. <br />Untuk informasi selengkapnya, lihat Manajemen [ Identitas dan Akses untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html). | Bersyarat | 
| x-amz-security-token | Token keamanan digunakan oleh kredensial sesi<br /> Jika permintaan menggunakan Amazon DevPay maka diperlukan dua bidang `x-amz-security-token` formulir: satu untuk token produk dan satu untuk token pengguna.<br />Jika permintaan menggunakan kredensial sesi, maka permintaan tersebut memerlukan satu formulir `x-amz-security-token`. Untuk informasi selengkapnya, lihat [Kredensial Keamanan Sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) dalam *Panduan Pengguna IAM*.<br /> | Tidak | 
| Nama bidang lain yang diawali dengan x-amz-meta | User-specified metadata. <br />Amazon S3 tidak memvalidasi atau menggunakan data ini.<br />Untuk informasi selengkapnya, lihat [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html). | Tidak | 
| file | Konten file atau teks. <br />File atau konten harus menjadi bidang terakhir dalam formulir. Bidang apa pun di bawahnya akan diabaikan.<br />Anda tidak dapat mengunggah lebih dari satu file sekaligus. | Ya | 

## Konstruksi kebijakan
<a name="HTTPPOSTConstructPolicy"></a>

**Topics**
+ [Kedaluwarsa](#HTTPPOSTExpiration)
+ [Ketentuan](#PolicyConditions)
+ [Pencocokan ketentuan](#ConditionMatching)
+ [Pelarian karakter](#HTTPPOSTEscaping)

Kebijakan adalah dokumen UTF-8 dan Base64-encoded JSON yang menentukan kondisi yang harus dipenuhi permintaan dan digunakan untuk mengotentikasi konten. Tergantung pada cara Anda merancang dokumen kebijakan, Anda dapat menggunakannya untuk setiap unggahan, setiap pengguna, untuk semua unggahan, atau sesuai dengan desain lain yang memenuhi kebutuhan Anda.

**catatan**  
 Meskipun dokumen kebijakan bersifat opsional, seabiknya buat bucket yang dapat ditulis secara publik. 

Berikut ini adalah contoh dari dokumen kebijakan:

```
 1. { "expiration": "2007-12-01T12:00:00.000Z",
 2. 
 3.   "conditions": [
 4. 
 5.     {"acl": "public-read" },
 6. 
 7.     {"bucket": "awsexamplebucket1" },
 8. 
 9.     ["starts-with", "$key", "user/eric/"],
10. 
11.   ]
12. 
13. }
```

Dokumen kebijakan berisi masa kedaluwarsa dan ketentuan-ketentuan.

### Kedaluwarsa
<a name="HTTPPOSTExpiration"></a>

Elemen kedaluwarsa menetapkan tanggal kedaluwarsa kebijakan dengan format tanggal ISO 8601 UTC. Misalnya, “2007-12-01T12:00:00.000Z” menentukan bahwa kebijakan tersebut tidak valid setelah tengah malam UTC pada 2007-12-01. Kedaluwarsa wajib ada dalam kebijakan.

### Ketentuan
<a name="PolicyConditions"></a>

Ketentuan dalam dokumen kebijakan memvalidasi konten dari objek yang diunggah. Setiap bidang formulir yang Anda tentukan dalam formulir (kecualiAWSAccessKeyId, tanda tangan, file, kebijakan, dan nama bidang yang memiliki awalan x-ignore-) harus disertakan dalam daftar kondisi. 

**catatan**  
Jika Anda memiliki beberapa bidang dengan nama yang sama, maka nilai-nilainya harus dipisahkan dengan koma. Contoh, jika Anda memiliki dua bidang bernama “x-amz-meta-tag” dan yang pertama memiliki nilai “Ninja” dan yang kedua memiliki nilai “Stallman”, maka Anda harus mengatur dokumen kebijakan menjadi `Ninja,Stallman`.  
 Semua variabel yang ada dalam formulir diperluas sebelum kebijakan tersebut divalidasi. Oleh karena itu, semua pencocokan kondisi harus dilakukan pada kolom-kolom yang diperluas. Misalnya, jika Anda mengatur bidang kunci ke `user/betty/${filename}`, kebijakan Anda mungkin `[ "starts-with", "$key", "user/betty/" ]`. Jangan masukkan `[ "starts-with", "$key", "user/betty/${filename}" ]`. Untuk informasi selengkapnya, lihat [Pencocokan ketentuan](#ConditionMatching). 

Tabel berikut menjelaskan ketentuan dokumen kebijakan.


| Nama elemen | Deskripsi | 
| --- | --- | 
| acl | Menentukan ketentuan yang harus dipenuhi oleh ACL. <br />Dukung pencocokan yang tepat dan `starts-with`.  | 
| content-length-range | Menentukan ukuran minimal dan maksimal yang diizinkan untuk konten yang diunggah. <br />Dukung penyesuaian rentang. | 
| Cache-Control,, Content-Type, Content-DispositionContent-Encoding, Kedaluwarsa | REST-specific tajuk. <br />Dukung pencocokan yang tepat dan `starts-with`. | 
| kunci | Nama kunci yang diunggah.<br />Dukung pencocokan yang tepat dan `starts-with`.  | 
| success\_action\_redirect, mengalihkan  | URL yang akan diarahkan klien setelah unggahan berhasil.<br />Dukung pencocokan yang tepat dan `starts-with`.  | 
| success\_action\_status | Kode status dikembalikan kepada klien setelah berhasil mengunggah jika success\_action\_redirect tidak ditentukan.<br />Dukung pencocokan yang tepat.  | 
| x-amz-security-token | Token DevPay keamanan Amazon. <br />Setiap permintaan yang menggunakan Amazon DevPay memerlukan dua bidang `x-amz-security-token` formulir: satu untuk token produk dan satu untuk token pengguna. Akibatnya, nilai harus dipisahkan dengan koma. Contoh, jika token pengguna adalah `eW91dHViZQ==` dan token produk adalah `b0hnNVNKWVJIQTA=`, maka Anda harus mengatur entri kebijakan menjadi: `{ "x-amz-security-token": "eW91dHViZQ==,b0hnNVNKWVJIQTA=" }`. | 
| Nama bidang lain yang diawali dengan x-amz-meta | User-specified metadata. <br />Dukung pencocokan yang tepat dan `starts-with`.  | 

**catatan**  
 Jika alat memberikan bidang tambahan (misalnya, Flash menambahkan nama file), maka Anda harus menambahkannya pada dokumen kebijakan. 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. 

### Pencocokan ketentuan
<a name="ConditionMatching"></a>

Tabel berikut menjelaskan jenis pencocokan ketentuan. Meskipun Anda harus menentukan satu ketentuan untuk setiap bidang formulir yang disebutkan dalam formulir tersebut, Anda dapat membuat kriteria pencocokan yang lebih kompleks dengan menetapkan beberapa ketentuan untuk bidang formulir.


|  Ketentuan  |  Deskripsi  | 
| --- | --- | 
| Kecocokan yang Tepat | Kecocokan yang tepat memverifikasi bahwa kolom cocok dengan nilai spesifik. Contoh ini menunjukkan bahwa ACL harus diatur ke baca publik:<pre>{"acl": "public-read" }</pre><br />Contoh ini adalah cara alternatif untuk menunjukkan bahwa ACL harus diatur ke baca publik:<pre>[ "eq", "$acl", "public-read" ]</pre> | 
| Dimulai Dengan | Jika nilai harus dimulai dengan nilai tertentu, gunakan mulai-dengan. Contoh ini menunjukkan bahwa kunci harus dimulai dengan user/betty:<pre>["starts-with", "$key", "user/betty/"]</pre> | 
| Mencocokkan Konten Apa Pun | Untuk mengonfigurasi kebijakan yang mengizinkan konten apa pun di dalam sebuah bidang, gunakan mulai-dengan dengan nilai kosong. Contoh ini memungkinkan success\_action\_redirect:<pre>["starts-with", "$success_action_redirect", ""]</pre> | 
| Menentukan Rentang | Untuk kolom yang menerima rentang, pisahkan rentang atas dan bawah dengan koma. Contoh ini memungkinkan ukuran file dari 1 hingga 10 megabyte:<pre>["content-length-range", 1048579, 10485760]</pre> | 

### Pelarian karakter
<a name="HTTPPOSTEscaping"></a>

Tabel berikut menjelaskan pelarian karakter dari dalam dokumen kebijakan.


|  Karakter pelarian  |  Deskripsi  | 
| --- | --- | 
| \\\\ | Garis miring terbalik | 
| \\$ | Tanda dolar | 
| \\b | Spasi Mundur | 
| \\f | Umpan formulir | 
| \\n | Baris baru | 
| \\r | Kembali ke awal baris | 
| \\t | Tab Horizontal | 
| \\v | Tab vertikal | 
| \\ u {{xxxx}} | Semua karakter Unicode | 

## Membuat tanda tangan
<a name="HTTPPOSTConstructingPolicySignature"></a>


| Langkah | Deskripsi | 
| --- | --- | 
| 1 | Enkodekan kebijakan dengan menggunakan UTF-8. | 
| 2 | Enkode UTF-8 byte tersebut dengan menggunakan Base64. | 
| 3 | Tanda tangani kebijakan dengan kunci akses rahasia Anda dengan menggunakan HMACSHA-1. | 
| 4 | Enkode SHA-1 tanda tangan dengan menggunakan Base64. | 

Untuk informasi umum tentang otentikasi, lihat Manajemen [ Identitas dan Akses untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html).

## Pengalihan
<a name="HTTPPOSTConstructingPolicyRedirection"></a>

Bagian ini menjelaskan cara menangani pengalihan.

### Pengalihan umum
<a name="HTTPPOSTGeneralRedirection"></a>

Setelah menyelesaikan permintaan POST, pengguna akan dialihkan ke lokasi yang telah Anda tentukan dalam bidang `success_action_redirect`. Jika Amazon S3 tidak dapat menginterpretasikan URL, maka Amazon S3 mengabaikan bidang `success_action_redirect`.

Jika `success_action_redirect` tidak ditentukan, maka Amazon S3 akan mengembalikan jenis dokumen kosong yang ditentukan dalam bidang `success_action_status`.

Jika permintaan POST gagal, maka Amazon S3 akan menampilkan kesalahan dan tidak akan memberikan pengalihan.

### Pre-upload pengalihan
<a name="HTTPPOSTPreUpload"></a>

Jika ember Anda dibuat menggunakan <CreateBucketConfiguration>, maka pengguna akhir Anda mungkin memerlukan pengalihan. Jika hal ini terjadi, beberapa peramban mungkin menangani pengalihan dengan tidak benar. Hal ini tergolong jarang terjadi, namun kemungkinan besar akan terjadi setelah pembuatan bucket.