Meminta pengalihan dan API REST - Amazon Simple Storage Service

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, 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-GET, seperti PUT dan DELETE, bekerja dengan benar.

  • Verifikasi permintaan PUT besar mengikuti pengalihan dengan benar.

  • Verifikasi permintaan PUT mengikuti arah yang benar jika respons 100-lanjutkan memerlukan waktu lama untuk tiba.

Agen pengguna HTTP yang secara ketat mematuhi RFC 2616 mungkin memerlukan konfirmasi eksplisit sebelum mengikuti pengalihan jika metode permintaan HTTP bukan GET atau HEAD. Pada umumnya, aman untuk mengikuti pengalihan yang dihasilkan oleh Amazon S3 secara otomatis, karena sistem akan menerbitkan pengalihan hanya untuk host di domain amazonaws.com dan efek permintaan pengalihan akan sama dengan permintaan awal.

Mengarahkan kembali dan 100-Lanjutkan

Untuk menyederhanakan penanganan pengalihan, meningkatkan efisiensi, dan menghindari biaya yang terkait dengan pengiriman bodi permintaan pengalihan dua kali, konfigurasikan aplikasi Anda untuk menggunakan 100-lanjutkan untuk operasi PUT. Ketika aplikasi Anda menggunakan 100-lanjutkan, aplikasi tidak mengirim bodi permintaan sampai menerima pengakuan. Jika pesan ditolak berdasarkan header, bodi pesan tidak akan terkirim. Untuk informasi lebih lanjut 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 bodi permintaan. Hal ini karena beberapa server HTTP tidak mengenali 100-lanjutkan. Namun, Amazon S3 mengakui jika permintaan Anda memuat Expect: Continue dan akan merespons dengan status 100-lanjutkan sementara atau kode status akhir. Selain itu, tidak ada kesalahan pengalihan yang akan terjadi setelah menerima go-ahead sementara 100 lanjutkan. Ini akan membantu Anda menghindari menerima respons pengalihan saat Anda masih menulis bodi permintaan.

Contoh pengalihan

Bagian ini memberikan contoh interaksi server-klien menggunakan pengalihan HTTP dan 100-lanjutkan.

Berikut ini adalah contoh PUT 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 mengembalikan hal 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 bodi permintaan.

HTTP/1.1 100 Continue

Klien mengirimkan bodi 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