

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

# Contoh: Browser-Based Unggah menggunakan HTTP POST (Menggunakan AWS Versi Tanda Tangan 4)
<a name="sigv4-post-example"></a>

Bagian ini menunjukkan contoh penggunaan permintaan HTTP POST untuk mengunggah konten langsung ke Amazon S3.

Untuk informasi selengkapnya tentang Tanda Tangan Versi 4, lihat [ Proses Penandatanganan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).

## Mengunggah File ke Amazon S3 Menggunakan HTTP POST
<a name="sigv4-post-example-file-upload"></a>

Contoh ini menyediakan contoh kebijakan POST dan formulir yang dapat Anda gunakan untuk mengunggah file. Topik menggunakan contoh kebijakan dan kredenSIAL fiktif untuk menunjukkan alur kerja dan tanda tangan dan hash kebijakan yang dihasilkan. Anda dapat menggunakan data ini sebagai rangkaian pengujian untuk memverifikasi kode perhitungan tanda tangan Anda.

Contoh menggunakan kredentif contoh berikut perhitungan tanda tangan. Anda dapat menggunakan kredenSIAL ini untuk memverifikasi kode perhitungan tanda tangan Anda. Namun, Anda kemudian harus menggantinya dengan kredenSIAL Anda sendiri saat mengirim permintaan ke AWS.


| Parameter | Nilai | 
| --- | --- | 
| AWSAccessKeyId | AKIAIOSFODNN7EXAMPLE | 
| AWSSecretAccessKey | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY | 

### Contoh Kebijakan dan Formulir
<a name="sigv4-post-example-file-upload-policy"></a>

Kebijakan POST berikut mendukung unggahan ke Amazon S3 dengan kondisi tertentu.

```
 1. { "expiration": "2015-12-30T12:00:00.000Z",
 2.   "conditions": [
 3.     {"bucket": "sigv4examplebucket"},
 4.     ["starts-with", "$key", "user/user1/"],
 5.     {"acl": "public-read"},
 6.     {"success_action_redirect": "http://sigv4examplebucket.s3.amazonaws.com/successful_upload.html"},
 7.     ["starts-with", "$Content-Type", "image/"],
 8.     {"x-amz-meta-uuid": "14365123651274"},
 9.     {"x-amz-server-side-encryption": "AES256"},
10.     ["starts-with", "$x-amz-meta-tag", ""],
11. 
12.     {"x-amz-credential": "AKIAIOSFODNN7EXAMPLE/20151229/us-east-1/s3/aws4_request"},
13.     {"x-amz-algorithm": "AWS4-HMAC-SHA256"},
14.     {"x-amz-date": "20151229T000000Z" }
15.   ]
16. }
```

Kebijakan POST ini menetapkan ketentuan berikut pada permintaan:
+ Pengunggahan harus dilakukan sebelum tengah hari UTC pada tanggal 30 Desember 2015.
+ Konten hanya dapat diunggah ke`sigv4examplebucket`. Bucket harus berada di wilayah yang Anda tentukan dalam cakupan kredensia (parameter `x-amz-credential` formulir), karena tanda tangan yang Anda berikan hanya valid dalam lingkup ini.
+ Anda dapat memberikan nama kunci apa pun yang dimulai dengan`user/user1`. Misalnya, `user/user1/MyPhoto.jpg`.
+ ACL harus disetel ke`public-read`.
+ Jika unggahan berhasil, browser pengguna dialihkan ke`http://sigv4examplebucket.s3.amazonaws.com/successful_upload.html`.
+ Objek harus berupa file gambar.
+ `x-amz-meta-uuid`Tag harus disetel ke`14365123651274`. 
+ `x-amz-meta-tag`Bisa berisi nilai apa pun.

Berikut ini adalah Base64-encoded versi kebijakan POST ini. Anda menggunakan nilai ini sebagai perhitungan tanda tangan AndaStringToSign .

```
1. eyAiZXhwaXJhdGlvbiI6ICIyMDE1LTEyLTMwVDEyOjAwOjAwLjAwMFoiLA0KICAiY29uZGl0aW9ucyI6IFsNCiAgICB7ImJ1Y2tldCI6ICJzaWd2NGV4YW1wbGVidWNrZXQifSwNCiAgICBbInN0YXJ0cy13aXRoIiwgIiRrZXkiLCAidXNlci91c2VyMS8iXSwNCiAgICB7ImFjbCI6ICJwdWJsaWMtcmVhZCJ9LA0KICAgIHsic3VjY2Vzc19hY3Rpb25fcmVkaXJlY3QiOiAiaHR0cDovL3NpZ3Y0ZXhhbXBsZWJ1Y2tldC5zMy5hbWF6b25hd3MuY29tL3N1Y2Nlc3NmdWxfdXBsb2FkLmh0bWwifSwNCiAgICBbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiaW1hZ2UvIl0sDQogICAgeyJ4LWFtei1tZXRhLXV1aWQiOiAiMTQzNjUxMjM2NTEyNzQifSwNCiAgICB7IngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24iOiAiQUVTMjU2In0sDQogICAgWyJzdGFydHMtd2l0aCIsICIkeC1hbXotbWV0YS10YWciLCAiIl0sDQoNCiAgICB7IngtYW16LWNyZWRlbnRpYWwiOiAiQUtJQUlPU0ZPRE5ON0VYQU1QTEUvMjAxNTEyMjkvdXMtZWFzdC0xL3MzL2F3czRfcmVxdWVzdCJ9LA0KICAgIHsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwNCiAgICB7IngtYW16LWRhdGUiOiAiMjAxNTEyMjlUMDAwMDAwWiIgfQ0KICBdDQp9
```

Ketika Anda copy/paste menerapkan kebijakan sebelumnya, itu harus memiliki pengembalian kereta dan baris baru untuk hash yang Anda hitung agar sesuai dengan nilai ini (mis. Teks ASCII, dengan terminator baris CRLF).

Menggunakan contoh kredenSIAL untuk membuat tanda tangan, nilai tanda tangan adalah sebagai berikut (dalam perhitungan tanda tangan, tanggalnya sama dengan `x-amz-date` pada kebijakan (20151229):

```
8afdbf4008c03f22c2cd3cdb72e4afbb1f6a588f3255ac628749a66d7f09699e
```

Formulir contoh berikut menentukan kebijakan POST sebelumnya dan mendukung permintaan POST ke`sigv4examplebucket`. Copy/paste konten dalam editor teks dan simpan sebagai exampleform.html. Anda kemudian dapat mengunggah file gambar ke bucket tertentu menggunakan exampleform.html. Permintaan Anda akan berhasil jika tanda tangan yang Anda berikan cocok dengan tanda tangan yang dihitung Amazon S3.

**catatan**  
Anda harus memperbarui nama bucket, tanggal, kredensi, kebijakan, dan tanda tangan dengan nilai yang valid agar berhasil diunggah ke S3. 

```
 1. <html>
 2.   <head>
 3.     
 4.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 5.     
 6.   </head>
 7.   <body>
 8. 
 9.   <form action="http://sigv4examplebucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
10.     Key to upload: 
11.     <input type="input"  name="key" value="user/user1/${filename}" /><br />
12.     <input type="hidden" name="acl" value="public-read" />
13.     <input type="hidden" name="success_action_redirect" value="http://sigv4examplebucket.s3.amazonaws.com/successful_upload.html" />
14.     Content-Type: 
15.     <input type="input"  name="Content-Type" value="image/jpeg" /><br />
16.     <input type="hidden" name="x-amz-meta-uuid" value="14365123651274" /> 
17.     <input type="hidden" name="x-amz-server-side-encryption" value="AES256" /> 
18.     <input type="text"   name="X-Amz-Credential" value="AKIAIOSFODNN7EXAMPLE/20151229/us-east-1/s3/aws4_request" />
19.     <input type="text"   name="X-Amz-Algorithm" value="AWS4-HMAC-SHA256" />
20.     <input type="text"   name="X-Amz-Date" value="20151229T000000Z" />
21. 
22.     Tags for File: 
23.     <input type="input"  name="x-amz-meta-tag" value="" /><br />
24.     <input type="hidden" name="Policy" value='{{<Base64-encoded policy string>}}' />
25.     <input type="hidden" name="X-Amz-Signature" value="{{<signature-value>}}" />
26.     File: 
27.     <input type="file"   name="file" /> <br />
28.     <!-- The elements after this will be ignored -->
29.     <input type="submit" name="submit" value="Upload to Amazon S3" />
30.   </form>
31.   
32. </html>
```

Parameter posting tidak peka huruf besar/kecil. Misalnya, Anda dapat menentukan `x-amz-signature` atau `X-Amz-Signature`.