Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Meminta pengalihan dan API REST
Bagian ini menjelaskan cara menangani pengalihan HTTP menggunakan API REST Amazon S3. Untuk informasi umum tentang pengalihan Amazon S3, lihat Membuat permintaan dalam Referensi API Amazon Simple Storage Service.
Pengalihan dan agen pengguna HTTP
Program yang menggunakan API REST Amazon S3 harus menangani pengalihan baik pada lapisan aplikasi atau lapisan HTTP. Banyak pustaka klien dan agen pengguna HTTP dapat dikonfigurasi agar menangani pengalihan secara otomatis dengan tepat; tetapi, banyak klien lain yang memiliki implementasi pengalihan yang tidak tepat atau tidak lengkap.
Sebelum Anda mengandalkan pustaka untuk memenuhi persyaratan pengalihan, lakukan uji kasus berikut:
-
Verifikasi bahwa semua header permintaan HTTP disertakan dengan benar dalam permintaan pengalihan (permintaan kedua setelah menerima pengalihan) termasuk standar HTTP seperti Otorisasi dan Tanggal.
-
Verifikasi pengalihan non-DAPATKAN, seperti LETAKKAN dan HAPUS, bekerja dengan benar.
-
Verifikasi permintaan LETAKKAN yang besar mengikuti pengalihan dengan benar.
-
Verifikasi permintaan LETAKKAN mengikuti arah yang benar jika respons 100-lanjutkan memerlukan waktu lama untuk sampai.
Agen pengguna HTTP yang secara ketat mematuhi RFC 2616 mungkin memerlukan konfirmasi eksplisit sebelum mengikuti pengalihan jika metode permintaan HTTP bukan DAPATKAN atau HEAD. Mengikuti pengalihan yang dibuat oleh Amazon S3 secara otomatis umumnya aman, karena sistem hanya akan mengeluarkan pengalihan ke host dalam domain amazonaws.com dan efek permintaan yang dialihkan akan sama dengan permintaan asli.
Mengalihkan dan 100-Lanjutkan
Untuk menyederhanakan penanganan pengalihan, meningkatkan efisiensi, dan menghindari biaya yang terkait dengan pengiriman isi permintaan pengalihan dua kali, konfigurasikan aplikasi Anda untuk menggunakan 100-lanjutkan untuk operasi LETAKKAN. Ketika aplikasi Anda menggunakan 100-lanjutkan, aplikasi tidak mengirim isi permintaan sampai menerima pengakuan. Jika pesan ditolak berdasarkan header, isi pesan tidak akan terkirim. Untuk informasi selengkapnya tentang 100-lanjutkan, kunjungi RFC 2616 Bagian 8.2.3
catatan
Menurut RFC 2616, saat menggunakan Expect: Continue dengan server HTTP yang tidak dikenal, Anda tidak boleh menunggu selama periode yang tidak terbatas sebelum mengirimkan isi permintaan. Hal ini karena beberapa server HTTP tidak mengetahui adanya 100-lanjutkan. Namun, Amazon S3 mengetahui jika permintaan Anda memuat Expect: Continue dan akan merespons dengan status 100-lanjutkan sementara atau kode status akhir. Selain itu, tidak akan terjadi kesalahan pengalihan setelah menerima 100 izin lanjutkan sementara. Ini akan membantu Anda menghindari menerima respons pengalihan saat Anda masih menulis isi permintaan.
Contoh pengalihan
Bagian ini memberikan contoh interaksi server-klien menggunakan pengalihan HTTP dan 100-lanjutkan.
Berikut ini adalah contoh LETAKKAN ke bucket quotes.s3.amazonaws.com.
PUT /nelson.txt HTTP/1.1 Host: quotes.s3.amazonaws.com Date: Mon, 15 Oct 2007 22:18:46 +0000 Content-Length: 6 Expect: 100-continue
Amazon S3 memberikan informasi berikut:
HTTP/1.1 307 Temporary Redirect Location: http://quotes.s3-4c25d83b.amazonaws.com/nelson.txt?rk=8d47490b Content-Type: application/xml Transfer-Encoding: chunked Date: Mon, 15 Oct 2007 22:18:46 GMT Server: AmazonS3 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>TemporaryRedirect</Code> <Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests. </Message> <Endpoint>quotes.s3-4c25d83b.amazonaws.com</Endpoint> <Bucket>quotes</Bucket> </Error>
Klien mengikuti respons pengalihan dan mengeluarkan permintaan baru ke titik akhir sementara quotes.s3-4c25d83b.amazonaws.com.
PUT /nelson.txt?rk=8d47490b HTTP/1.1 Host: quotes.s3-4c25d83b.amazonaws.com Date: Mon, 15 Oct 2007 22:18:46 +0000 Content-Length: 6 Expect: 100-continue
Amazon S3 mengembalikan 100-lanjutkan yang menunjukkan bahwa klien harus melanjutkan dengan mengirim isi permintaan.
HTTP/1.1 100 Continue
Klien mengirimkan isi permintaan.
ha ha\n
Amazon S3 mengembalikan respons akhir.
HTTP/1.1 200 OK Date: Mon, 15 Oct 2007 22:18:48 GMT ETag: "a2c8d6b872054293afd41061e93bc289" Content-Length: 0 Server: AmazonS3