Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Objek POST
Deskripsi
POSTOperasi menambahkan objek ke bucket tertentu dengan menggunakan formulir HTML. POSTadalah bentuk alternatif PUT yang memungkinkan unggahan berbasis browser sebagai cara memasukkan objek ke dalam bucket. Parameter yang diteruskan PUT melalui header HTTP malah diteruskan sebagai bidang formulir ke POST dalam badan pesan yang dikodekan multipart/form -data. Untuk menambahkan objek ke bucket, Anda harus memiliki WRITE akses pada bucket. Amazon S3 tidak pernah menyimpan sebagian objek. Jika Anda menerima respons yang berhasil, Anda dapat yakin bahwa seluruh objek disimpan.
Amazon S3 adalah sistem terdistribusi. Kecuali Anda telah mengaktifkan pembuatan versi untuk bucket, jika Amazon S3 menerima beberapa permintaan penulisan untuk objek yang sama secara bersamaan, hanya versi terakhir dari objek yang ditulis yang disimpan.
Untuk memastikan bahwa data tidak rusak saat melintasi jaringan, gunakan kolom Content-MD5 formulir. Saat Anda menggunakan bidang formulir ini, Amazon S3 memeriksa objek terhadap nilai MD5 yang disediakan. Jika tidak cocok, Amazon S3 mengembalikan kesalahan. Selain itu, Anda dapat menghitung nilai MD5 saat memposting objek ke Amazon S3 dan membandingkan nilai yang dikembalikan ETag ke nilai MD5 yang dihitung. ETag hanya mencerminkan perubahan pada isi objek, bukan metadatanya.
catatan
Untuk mengonfigurasi aplikasi Anda untuk mengirim header permintaan sebelum mengirim isi permintaan, gunakan kode status HTTP 100 (Lanjutkan). Untuk POST operasi, menggunakan kode status ini membantu Anda menghindari pengiriman isi pesan jika pesan ditolak berdasarkan header (misalnya, karena kegagalan otentikasi atau pengalihan). Untuk informasi selengkapnya tentang kode status HTTP 100 (Lanjutkan), buka Bagian 8.2.3 dari http://www.ietf.org/rfc/rfc2616.txt
Amazon S3 secara otomatis mengenkripsi semua objek baru yang diunggah ke bucket S3. Pengaturan enkripsi objek yang diunggah tergantung pada konfigurasi enkripsi default dari bucket tujuan. Secara default, semua bucket memiliki konfigurasi enkripsi default yang menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 ()SSE-S3.
Jika bucket tujuan memiliki konfigurasi enkripsi yang menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS), enkripsi sisi server lapis ganda dengan kunci (SSE-KMS), atau AWS KMS kunci enkripsi yang disediakan pelanggan (DSSE-KMS), Amazon S3 menggunakan kunci KMS yang sesuai atau kunci yang disediakan pelanggan untuk mengenkripsi objek yang diunggah. SSE-C Saat mengunggah objek, jika Anda ingin mengubah pengaturan enkripsi objek yang diunggah, Anda dapat menentukan jenis enkripsi sisi server. Anda dapat mengkonfigurasi SSE-S3, SSE-KMS, DSSE-KMS, atau SSE-C. Untuk informasi selengkapnya, lihat Melindungi data menggunakan enkripsi sisi server di Panduan Pengguna Amazon Simple Storage Service.
penting
Saat membuat permintaan Anda, pastikan bahwa file bidang tersebut adalah bidang terakhir dalam formulir.
Permohonan
Sintaksis
POST / HTTP/1.1 Host:destinationBucket.s3.amazonaws.com User-Agent:browser_dataAccept:file_typesAccept-Language:RegionsAccept-Encoding:encodingAccept-Charset:character_setKeep-Alive: 300 Connection: keep-alive Content-Type: multipart/form-data; boundary=9431149156168 Content-Length:length--9431149156168 Content-Disposition: form-data; name="key"acl--9431149156168 Content-Disposition: form-data; name="tagging" <Tagging><TagSet><Tag><Key>Tag Name</Key><Value>Tag Value</Value></Tag></TagSet></Tagging> --9431149156168 Content-Disposition: form-data; name="success_action_redirect"success_redirect--9431149156168 Content-Disposition: form-data; name="Content-Type"content_type--9431149156168 Content-Disposition: form-data; name="x-amz-meta-uuid"uuid--9431149156168 Content-Disposition: form-data; name="x-amz-meta-tag"metadata--9431149156168 Content-Disposition: form-data; name="AWSAccessKeyId"access-key-id--9431149156168 Content-Disposition: form-data; name="Policy"encoded_policy--9431149156168 Content-Disposition: form-data; name="Signature"signature= --9431149156168 Content-Disposition: form-data; name="file"; filename="MyFilename.jpg" Content-Type: image/jpegfile_content--9431149156168 Content-Disposition: form-data; name="submit" Upload to Amazon S3 --9431149156168--
Parameter Permintaan
Implementasi operasi ini tidak menggunakan parameter permintaan.
Bidang Formulir
Operasi ini dapat menggunakan kolom formulir berikut.
| Nama | Deskripsi | Diperlukan |
|---|---|---|
AWSAccessKeyId |
ID kunci AWS akses pemilik bucket yang memberikan akses pengguna Anonim untuk permintaan yang memenuhi kumpulan batasan dalam kebijakan. Tipe: String Default: Tidak Ada Kendala: Diperlukan jika dokumen kebijakan disertakan dengan permintaan. |
Bersyarat |
acl |
Daftar kontrol akses Amazon S3 (ACL) yang ditentukan. Jika ACL yang ditentukan tidak valid, kesalahan dihasilkan. Untuk informasi selengkapnya tentang ACL, lihat ik htisar daftar kontrol akses (ACL) di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Tipe: String Default: privat Nilai Valid: |
Tidak |
Cache-Control, Content-Type,
Content-Disposition, Content-Encoding,
Expires |
He REST-specific ader. Untuk informasi selengkapnya, lihat PutObject. Tipe: String Default: Tidak Ada |
Tidak |
file |
File atau konten teks. File atau konten teks harus menjadi bidang terakhir dalam formulir. Anda tidak dapat mengunggah lebih dari satu file sekaligus. Jenis: File atau konten teks Default: Tidak Ada |
Ya |
key |
Nama kunci yang diunggah. Untuk menggunakan nama file yang disediakan oleh pengguna, gunakan Untuk informasi selengkapnya, lihat Kunci objek dan metadata di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Tipe: String Default: Tidak Ada |
Ya |
policy |
Kebijakan keamanan yang menjelaskan apa yang diizinkan dalam permintaan. Permintaan tanpa kebijakan keamanan dianggap anonim dan hanya berfungsi pada bucket yang dapat ditulis secara publik. Untuk informasi selengkapnya, lihat formulir HTML dan Unggah contoh di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Tipe: String Default: Tidak Ada Kendala: Kebijakan keamanan diperlukan jika bucket tidak dapat ditulis secara publik. |
Bersyarat |
success_action_redirect, redirect |
URL tempat klien dialihkan setelah unggahan berhasil. Jika Jika Amazon S3 tidak dapat menafsirkan URL, ia bertindak seolah-olah bidang tidak ada. Jika pengunggahan gagal, maka Amazon S3 akan menampilkan pesan kesalahan dan tidak akan mengalihkan pengguna ke URL. Tipe: String Default: Tidak Ada catatanNama |
Tidak |
success_action_status |
Jika Anda tidak menentukan Bidang ini menerima nilai Jika nilainya disetel ke Jika nilainya disetel ke Jika nilai tidak disetel atau jika disetel ke nilai yang tidak valid, Amazon S3 mengembalikan dokumen kosong dengan kode status 204. Tipe: String Default: Tidak Ada |
Tidak |
tagging |
Kumpulan tag yang ditentukan untuk ditambahkan ke objek. Untuk menambahkan tag, gunakan skema pengkodean berikut.
Untuk informasi selengkapnya, lihat Penandaan objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Tipe: String Default: Tidak Ada |
Tidak |
x-amz-storage-class |
Kelas penyimpanan yang digunakan untuk menyimpan objek. Jika Anda tidak menentukan kelas, Amazon S3 menggunakan kelas penyimpanan default, Tipe: String Default: Nilai yang valid: |
Tidak |
x-amz-meta-* |
Header 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. Tipe: String Default: Tidak Ada |
Tidak |
x-amz-security-token |
Token DevPay keamanan Amazon. Setiap permintaan yang menggunakan Amazon DevPay memerlukan dua bidang Tipe: String Default: Tidak Ada |
Tidak |
x-amz-signature |
(AWS Signature Version 4) HMAC-SHA256 Hash dari kebijakan keamanan. Tipe: String Default: Tidak Ada |
Bersyarat |
x-amz-website-redirect-location
|
Jika bucket dikonfigurasi sebagai situs web, bidang ini mengalihkan permintaan untuk objek ini ke objek lain dalam bucket yang sama atau ke URL eksternal. Amazon S3 menyimpan nilai header ini dalam metadata objek. Untuk informasi tentang metadata objek, lihat K unci objek dan metadata di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Dalam contoh berikut, header permintaan menetapkan pengalihan ke objek (
Dalam contoh berikut, header permintaan mengatur pengalihan objek ke situs web lain:
Untuk informasi selengkapnya tentang hosting situs web di Amazon S3, lihat Hosting situs web di Amazon S3 dan Cara mengonfigurasi pengalihan halaman situs web di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Tipe: String Default: Tidak Ada Kendala: Nilai harus diawali dengan |
Tidak |
Bidang Formulir Permintaan Checksum Tambahan
Saat mengunggah objek, Anda dapat menentukan berbagai checksum yang ingin Anda gunakan untuk memverifikasi integritas data Anda. Anda dapat menentukan satu algoritma checksum tambahan untuk Amazon S3 untuk digunakan. Untuk informasi selengkapnya tentang nilai checksum tambahan, lihat Memer iksa integritas objek di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
| Nama | Deskripsi | Diperlukan |
|---|---|---|
x-amz-checksum-algorithm
|
Menunjukkan algoritma yang digunakan untuk membuat checksum untuk objek. Jika nilai ditentukan, Anda harus menyertakan header checksum yang cocok. Jika tidak, permintaan Anda akan menghasilkan kesalahan 400. Nilai yang mungkin termasuk |
Tidak |
x-amz-checksum-crc32
|
Menentukan checksum CRC32 32-bit yang dikodekan base64 dari objek. Parameter ini diperlukan jika nilainya |
Bersyarat |
x-amz-checksum-crc32c
|
Menentukan checksum objek CRC32C 32-bit yang dikodekan base64. Parameter ini diperlukan jika nilainya |
Bersyarat |
x-amz-checksum-sha1
|
Menentukan ringkasan 160-bit yang dikodekan base64 dari objek SHA-1 . Parameter ini diperlukan jika nilainya |
Bersyarat |
x-amz-checksum-sha256
|
Menentukan intisari objek 256-bit yang dikodekan base64 SHA-256 . Parameter ini diperlukan jika nilainya |
Bersyarat |
Server-Side Bidang Formulir Permintaan Khusus Enkripsi
Server-side Enkripsi adalah enkripsi data saat diam. Amazon S3 mengenkripsi data Anda saat menulisnya ke disk di pusat AWS data dan mendekripsi data Anda saat Anda mengaksesnya. Saat mengunggah objek, Anda dapat menentukan jenis enkripsi sisi server yang ingin digunakan Amazon S3 untuk mengenkripsi objek.
Ada empat jenis enkripsi sisi server:
-
Server-side enkripsi dengan kunci terkelola Amazon S3 (SSE-S3) — Mulai Mei 2022, semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default. Opsi default untuk enkripsi sisi server adalah dengan. SSE-S3 Setiap objek dienkripsi dengan kunci unik. Sebagai perlindungan tambahan, SSE-S3 mengenkripsi kunci itu sendiri dengan kunci root yang secara teratur diputar. SSE-S3 menggunakan salah satu sandi blok terkuat yang tersedia, 256-bit Advanced Encryption Standard (AES-256), untuk mengenkripsi data Anda.
-
Server-side enkripsi dengan AWS KMS kunci (SSE-KMS) — SSE-KMS disediakan melalui integrasi AWS KMS layanan dengan Amazon S3. Dengan AWS KMS, Anda memiliki kontrol lebih besar atas kunci Anda. Misalnya, Anda dapat melihat kunci terpisah, mengedit kebijakan kontrol, dan mengikuti kunci di AWS CloudTrail. Selain itu, Anda dapat membuat dan mengelola CMK atau menggunakan Kunci yang dikelola AWS yang unik bagi Anda, layanan Anda, dan Wilayah Anda.
-
Dual-layer enkripsi sisi server dengan AWS KMS kunci (DSSE-KMS) — enkripsi Dual-layer sisi server dengan AWS KMS keys (DSSE-KMS) mirip dengan SSE-KMS, tetapi menerapkan dua lapisan individual enkripsi tingkat objek alih-alih satu lapisan.
-
Server-side enkripsi dengan kunci yang disediakan pelanggan (SSE-C) — Dengan SSE-C, Anda mengelola kunci enkripsi, dan Amazon S3 mengelola enkripsi saat menulis ke disk, dan dekripsi saat Anda mengakses objek Anda.
catatan
Jika Anda memiliki enkripsi sisi server dengan kunci (SSE-C) yang disediakan pelanggan yang diblokir untuk bucket tujuan umum Anda, Anda akan mendapatkan kesalahan HTTP 403 Access Denied saat Anda menentukan header SSE-C permintaan saat menulis data baru ke bucket Anda. Untuk informasi selengkapnya, lihat Mem blokir atau membuka blokir SSE-C untuk bucket tujuan umum.
Untuk informasi selengkapnya, lihat Melindungi data menggunakan enkripsi sisi server di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Bergantung pada jenis enkripsi sisi server yang ingin Anda gunakan, tentukan bidang formulir berikut.
-
Gunakan SSE-S3, SSE-KMS, atau DSSE-KMS — Jika Anda ingin menggunakan jenis enkripsi sisi server ini, tentukan bidang formulir berikut dalam permintaan.
Nama Deskripsi Diperlukan x-amz-server-side-encryptionMenentukan algoritma enkripsi sisi server yang akan digunakan saat Amazon S3 membuat objek. Untuk menggunakan SSE-S3, tentukan
AES256. Untuk menggunakan SSE-KMS, tentukanaws:kms. Untuk menggunakan DSSE-KMS, tentukanaws:kms:dsse.Tipe: String
Nilai yang Valid:
aws:kms,AES256,aws:kms:dsseYa x-amz-server-side-encryption-aws-kms-key-idJika
x-amz-server-side-encryptionheader memiliki nilai validaws:kmsatauaws:kms:dsse, header ini menentukan ID AWS KMS key yang digunakan untuk mengenkripsi objek.Tipe: String
Ya, jika nilainya x-amz-server-side-encryptionadalahaws:kmsatauaws:kms:dssex-amz-server-side-encryption-contextJika
x-amz-server-side-encryptionmemiliki nilaiaws:kmsatau yang validaws:kms:dsse, header ini menentukan konteks enkripsi untuk objek. Nilai header ini adalah UTF-8 string yang dikodekan base64 yang berisi pasangan kunci JSON-formatted -nilai untuk konteks enkripsi.Tipe: String
Tidak x-amz-server-side-encryption-bucket-key-enabledJika
x-amz-server-side-encryptionmemiliki nilai validaws:kmsatauaws:kms:dsse, header ini menentukan apakah Amazon S3 harus menggunakan S3 Bucket Key dengan SSE-KMS atau DSSE-KMS. Menyetel header ini untuktruemenyebabkan Amazon S3 menggunakan S3 Bucket Key untuk enkripsi objek dengan SSE-KMS atau DSSE-KMS.Jenis: Boolean
Tidak catatan
Jika Anda menentukan
x-amz-server-side-encryption:aws:kmsataux-amz-server-side-encryption:aws:kms:dsse, tetapi tidak memberikanx-amz-server-side-encryption-aws-kms-key-id, Amazon S3 menggunakan Kunci yang dikelola AWS (aws/S3) untuk melindungi data. -
Gunakan SSE-C — Jika Anda ingin mengelola kunci enkripsi Anda sendiri, Anda harus memberikan semua bidang formulir berikut dalam permintaan.
catatan
Jika Anda menggunakan SSE-C,
ETagnilai yang dikembalikan Amazon S3 dalam respons bukanlah MD5 objek.Nama Deskripsi Diperlukan x-amz-server-side-encryption-customer-algorithmMenentukan algoritma yang akan digunakan saat mengenkripsi objek.
Tipe: String
Default: Tidak Ada
Nilai yang Valid:
AES256Kendala: Harus disertai dengan
x-amz-server-side-encryption-customer-key-MD5bidangx-amz-server-side-encryption-customer-keydan yang valid.Ya x-amz-server-side-encryption-customer-keyMenentukan kunci enkripsi base64 yang disediakan pelanggan untuk Amazon S3 untuk digunakan dalam mengenkripsi data. Nilai ini digunakan untuk menyimpan objek, dan kemudian dibuang. Amazon tidak menyimpan kunci enkripsi. Kunci harus sesuai untuk digunakan dengan algoritma yang ditentukan dalam
x-amz-server-side-encryption-customer-algorithmheader.Tipe: String
Default: Tidak Ada
Kendala: Harus disertai dengan
x-amz-server-side-encryption-customer-key-MD5bidangx-amz-server-side-encryption-customer-algorithmdan yang valid.Ya x-amz-server-side-encryption-customer-key-MD5Menentukan ringkasan MD5 128-bit yang dikodekan base64 dari kunci enkripsi sesuai dengan RFC 1321. http://tools.ietf.org/html/rfc1321
Amazon S3 menggunakan header ini untuk pemeriksaan integritas pesan untuk memastikan bahwa kunci enkripsi ditransmisikan tanpa kesalahan. Tipe: String
Default: Tidak Ada
Kendala: Harus disertai dengan
x-amz-server-side-encryption-customer-keybidangx-amz-server-side-encryption-customer-algorithmdan yang valid.Ya
Respons
Header Respons
Implementasi operasi ini dapat mencakup header respons berikut selain header respons yang umum untuk semua tanggapan. Untuk informasi selengkapnya, lihat Header Respons Umum.
| Nama | Deskripsi |
|---|---|
x-amz-checksum-crc32
|
Checksum objek CRC32 32-bit yang dikodekan base64. Tipe: String |
x-amz-checksum-crc32c
|
Checksum objek CRC32C 32-bit yang dikodekan base64. Tipe: String |
x-amz-checksum-sha1
|
Intisari objek 160-bit yang dikodekan base64 SHA-1 . Tipe: String |
x-amz-checksum-sha256
|
Intisari objek 256-bit yang dikodekan base64 SHA-256 . Tipe: String |
x-amz-expiration
|
Jika Tipe: String |
success_action_redirect, redirect
|
URL tempat klien diarahkan pada unggahan yang berhasil. Tipe: String Leluhur: PostResponse |
x-amz-server-side-encryption
|
Algoritma enkripsi sisi server yang digunakan saat menyimpan objek ini di Amazon S3 (misalnya,, Tipe: String |
x-amz-server-side-encryption-aws-kms-key-id
|
Jika Tipe: String |
x-amz-server-side-encryption-bucket-key-enabled
|
Jika Jenis: Boolean |
x-amz-server-side-encryption-customer-algorithm
|
Jika SSE-C diminta, respons menyertakan header ini, yang mengkonfirmasi algoritma enkripsi yang digunakan. Tipe: String Nilai yang Valid: |
x-amz-server-side-encryption-customer-key-MD5
|
Jika SSE-C diminta, respons menyertakan header ini untuk memverifikasi integritas pesan pulang-pergi dari kunci enkripsi yang disediakan pelanggan. Tipe: String |
x-amz-version-id |
Versi objek. Tipe: String |
Elemen Respons
| Nama | Deskripsi |
|---|---|
Bucket
|
Nama ember tempat objek disimpan. Tipe: String Leluhur: PostResponse |
ETag
|
Tag entitas (ETag) adalah hash MD5 dari objek yang dapat Anda gunakan untuk melakukan Tipe: String Leluhur: PostResponse |
Key
|
Nama kunci objek. Tipe: String Leluhur: PostResponse |
Location
|
URI dari objek. Tipe: String Leluhur: PostResponse |
Kesalahan Khusus
Implementasi operasi ini tidak mengembalikan kesalahan khusus. Untuk informasi umum tentang kesalahan Amazon S3 dan daftar kode kesalahan, lihat Respons Kesalahan.
Contoh
Permintaan Sampel
POST /Neo HTTP/1.1 Content-Length: 4 Host: quotes.s3.amazonaws.com Date: Wed, 01 Mar 2006 12:00:00 GMT Authorization:authorization stringContent-Type: text/plain Expect: the 100-continue HTTP status codeObjectContent
Sampel Respon dengan Pembuatan Versi Ditangguhkan
Berikut ini adalah contoh respons saat pembuatan versi bucket ditangguhkan:
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: default Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Connection: close Server: AmazonS3
Dalam respons ini, ID versi adalahnull.
Contoh Respon dengan Versioning Diaktifkan
Berikut ini adalah contoh respons saat pembuatan versi bucket diaktifkan.
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-amz-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-amz-request-id: 0A49CE4060975EAC x-amz-version-id: 43jfkodU8493jnFJD9fjj3HHNVfdsQUIFDNsidf038jfdsjGFDSIRp Date: Wed, 01 Mar 2006 12:00:00 GMT ETag: "828ef3fdfa96f00ad9f27c383fc9ac7f" Content-Length: 0 Connection: close Server: AmazonS3