Bucket dengan hosting virtual - Amazon Simple Storage Service

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

Bucket dengan hosting virtual

Hosting virtual adalah praktik melayani beberapa situs web dari server web tunggal. Salah satu cara untuk membedakan situs dalam permintaan Amazon REST API S3 Anda adalah dengan menggunakan nama host yang jelas dari Permintaan URI - bukan hanya bagian nama jalur dari. URI RESTPermintaan Amazon S3 biasa menentukan bucket dengan menggunakan komponen garis miring pertama dari jalur Permintaan. URI Sebagai gantinya, Anda dapat menggunakan hosting virtual Amazon S3 untuk mengatasi ember dalam REST API panggilan dengan menggunakan header. HTTP Host Dalam praktiknya, Amazon S3 menafsirkan Host sebagai arti bahwa sebagian besar bucket secara otomatis dapat diakses untuk jenis permintaan terbatas di https://bucket-name.s3.region-code.amazonaws.com. Untuk daftar lengkap titik akhir dan Wilayah Amazon S3, lihat Titik akhir dan kuota Amazon S3 di Referensi Umum Amazon Web Services.

Hosting virtual juga memiliki manfaat lain. Dengan menamai bucket Anda setelah nama domain terdaftar Anda dan dengan menjadikan nama itu DNS alias untuk Amazon S3, Anda dapat sepenuhnya menyesuaikan URL sumber daya Amazon S3 Anda, misalnya,. http://my.bucket-name.com/ Anda juga dapat menerbitkan ke “direktori root” dari server virtual bucket Anda. Kemampuan ini bisa menjadi penting, karena banyak aplikasi yang ada mencari file di lokasi standar ini. Misalnya, favicon.ico, robots.txt, dan crossdomain.xml semuanya diharapkan dapat ditemukan di root.

penting

Saat Anda menggunakan bucket bergaya host virtual denganSSL, sertifikat SSL wildcard hanya cocok dengan bucket yang tidak berisi dots (). . Untuk mengatasi batasan ini, gunakan HTTP atau tulis logika verifikasi sertifikat Anda sendiri. Untuk informasi selengkapnya, lihat Rencana Penghentian Jalur Amazon S3 di Blog Berita AWS .

Permintaan Cara Jalur

Saat ini, Amazon S3 mendukung akses gaya host virtual dan gaya jalur secara keseluruhan. URL Wilayah AWS Namun, gaya jalur URLs akan dihentikan di masa depan. Untuk informasi selengkapnya, lihat catatan Penting berikut ini.

Di Amazon S3, gaya jalur URLs menggunakan format berikut:

https://s3.region-code.amazonaws.com/bucket-name/key-name

Misalnya, jika Anda membuat bucket bernama amzn-s3-demo-bucket1 di Wilayah AS Barat (Oregon), dan Anda ingin mengakses puppy.jpg objek di bucket tersebut, Anda dapat menggunakan gaya jalur berikut: URL

https://s3.us-west-2.amazonaws.com/amzn-s3-demo-bucket1/puppy.jpg
penting

Pembaruan (23 September 2020) - Untuk memastikan bahwa pelanggan memiliki waktu yang mereka butuhkan untuk beralih ke gaya host virtualURLs, kami telah memutuskan untuk menunda penghentian gaya jalur. URLs Untuk informasi lebih lanjut, lihat Rencana Penghentian Jalur Amazon S3-Cerita Seluruhnya di Blog Berita AWS .

Awas

Saat menghosting konten situs web yang akan diakses dari browser web, hindari menggunakan gaya jalurURLs, yang mungkin mengganggu model keamanan asal browser yang sama. Untuk meng-host konten situs web, kami menyarankan Anda menggunakan titik akhir situs web S3 atau distribusi. CloudFront Untuk informasi selengkapnya, lihat Titik akhir situs web dan Menerapkan aplikasi satu halaman berbasis React ke Amazon S3 dan di Pola Panduan Perspektif. CloudFront AWS

Permintaan cara hosting virtual

Dalam gaya host virtualURI, nama bucket adalah bagian dari nama domain di. URL

Gaya host virtual Amazon S3 menggunakan format berikut: URLs

https://bucket-name.s3.region-code.amazonaws.com/key-name

Dalam contoh ini, amzn-s3-demo-bucket1 adalah nama bucket, AS Barat (Oregon) adalah Wilayah, dan puppy.png adalah nama kuncinya:

https://amzn-s3-demo-bucket1.s3.us-west-2.amazonaws.com/puppy.png

HTTPHostspesifikasi ember header

Selama GET permintaan Anda tidak menggunakan SSL titik akhir, Anda dapat menentukan bucket untuk permintaan dengan menggunakan HTTP Host header. HostHeader dalam REST permintaan ditafsirkan sebagai berikut:

  • Jika Host header dihilangkan atau nilainyas3.region-code.amazonaws.com, bucket untuk permintaan akan menjadi komponen garis miring-delimited pertama dari Request-URI, dan kunci untuk permintaan akan menjadi sisa Request-. URI Ini adalah metode biasa, seperti yang digambarkan oleh contoh pertama dan kedua di bagian ini. Menghilangkan Host header hanya berlaku untuk HTTP 1.0 permintaan.

  • Atau, jika nilai header Host berakhir di .s3.region-code.amazonaws.com, nama bucket adalah komponen utama nilai header Host hingga .s3.region-code.amazonaws.com. Kunci untuk permintaan adalah Permintaan-URI. Interpretasi ini memaparkan bucket sebagai subdomain .s3.region-code.amazonaws.com, sebagaimana digambarkan oleh contoh ketiga dan keempat dalam bagian ini.

  • Jika tidak, bucket untuk permintaan adalah nilai huruf kecil Host header, dan kunci untuk permintaan adalah Request-. URI Interpretasi ini berguna ketika Anda telah mendaftarkan DNS nama yang sama dengan nama bucket Anda dan telah mengonfigurasi nama itu menjadi nama kanonik (CNAME) alias untuk Amazon S3. Prosedur untuk mendaftarkan nama domain dan mengkonfigurasi CNAME DNS catatan berada di luar cakupan panduan ini, tetapi hasilnya diilustrasikan oleh contoh terakhir di bagian ini.

Contoh

Bagian ini memberikan contoh URLs dan permintaan.

contoh — Gaya jalan dan permintaan URLs

Contoh ini menggunakan hal berikut:

  • Nama Bucket ‐ example.com

  • Wilayah AS Timur (Virginia Utara)

  • Nama kunci ‐ homepage.html

URLIni adalah sebagai berikut:

http://s3.us-east-1.amazonaws.com/example.com/homepage.html

Permintaan tersebut adalah sebagai berikut:

GET /example.com/homepage.html HTTP/1.1 Host: s3.us-east-1.amazonaws.com

Permintaan dengan HTTP 1.0 dan menghilangkan Host header adalah sebagai berikut:

GET /example.com/homepage.html HTTP/1.0

Untuk informasi tentang nama DNS -kompatibel, lihat Batasan. Untuk informasi lebih lanjut tentang kunci, lihat Kunci.

contoh — URLs Virtual-hosted—gaya dan permintaan

Contoh ini menggunakan hal berikut:

  • Nama Bucketamzn-s3-demo-bucket1

  • Wilayah ‐ Eropa (Irlandia)

  • Nama kuncihomepage.html

URLIni adalah sebagai berikut:

http://amzn-s3-demo-bucket1.s3.eu-west-1.amazonaws.com/homepage.html

Permintaan tersebut adalah sebagai berikut:

GET /homepage.html HTTP/1.1 Host: amzn-s3-demo-bucket1.s3.eu-west-1.amazonaws.com
contoh — CNAME metode alias

Untuk menggunakan metode ini, Anda harus mengkonfigurasi DNS nama Anda sebagai CNAME alias untukbucket-name.s3.us-east-1.amazonaws.com. Untuk informasi selengkapnya, lihat Menyesuaikan Amazon URLs S3 dengan catatan CNAME.

Contoh ini menggunakan hal berikut:

  • Nama Bucket ‐ example.com

  • Nama kuncihomepage.html

URLIni adalah sebagai berikut:

http://www.example.com/homepage.html

Contohnya adalah sebagai berikut:

GET /homepage.html HTTP/1.1 Host: www.example.com

Menyesuaikan Amazon URLs S3 dengan catatan CNAME

Tergantung pada kebutuhan Anda, Anda mungkin tidak ingin s3.region-code.amazonaws.com muncul di situs web atau layanan Anda. Sebagai contoh, jika Anda meng-hosting gambar situs web di Amazon S3, Anda mungkin lebih memilih http://images.example.com/ daripada http://images.example.com.s3.us-east-1.amazonaws.com/. Setiap bucket dengan nama DNS yang kompatibel dapat direferensikan sebagai berikut: http://BucketName.s3.Region.amazonaws.com/[Filename], misalnya,. http://images.example.com.s3.us-east-1.amazonaws.com/mydog.jpg Dengan menggunakanCNAME, Anda dapat memetakan images.example.com ke nama host Amazon S3 sehingga yang sebelumnya URL bisa menjadi. http://images.example.com/mydog.jpg

Nama ember Anda harus sama denganCNAME. Misalnya, jika Anda membuat CNAME to map images.example.com keimages.example.com.s3.us-east-1.amazonaws.com, keduanya http://images.example.com/filename dan http://images.example.com.s3.us-east-1.amazonaws.com/filename akan sama.

CNAMEDNSCatatan harus alias nama domain Anda ke nama host bergaya host virtual yang sesuai. Misalnya, jika nama bucket dan nama domain Anda images.example.com dan bucket Anda berada di Wilayah AS Timur (Virginia N.), CNAME catatan harus alias. images.example.com.s3.us-east-1.amazonaws.com

images.example.com CNAME images.example.com.s3.us-east-1.amazonaws.com.

Amazon S3 menggunakan nama host untuk menentukan nama bucket. Jadi CNAME dan nama ember harus sama. Misalnya, anggaplah Anda telah mengkonfigurasi www.example.com sebagai CNAME forwww.example.com.s3.us-east-1.amazonaws.com. Saat Anda mengakses http://www.example.com, Amazon S3 menerima permintaan yang serupa dengan yang berikut ini:

GET / HTTP/1.1 Host: www.example.com Date: date Authorization: signatureValue

Amazon S3 hanya melihat nama host asli www.example.com dan tidak mengetahui CNAME pemetaan yang digunakan untuk menyelesaikan permintaan.

Anda dapat menggunakan endpoint Amazon S3 apa pun dalam alias. CNAME Misalnya, s3.ap-southeast-1.amazonaws.com dapat digunakan dalam CNAME alias. Untuk informasi selengkapnya tentang titik akhir, lihat Meminta Titik Akhir di Referensi Amazon API S3. Untuk membuat situs web statis menggunakan domain khusus, lihat Tutorial: Mengonfigurasi situs web statis menggunakan domain kustom yang terdaftar di Route 53.

penting

Saat menggunakan custom URLs withCNAMEs, Anda harus memastikan ada bucket yang cocok untuk rekaman CNAME atau alias apa pun yang Anda konfigurasikan. Misalnya, jika Anda membuat DNS entri untuk www.example.com dan login.example.com mempublikasikan konten web menggunakan S3, Anda harus membuat bucket www.example.com dan. login.example.com

Saat catatan CNAME atau alias dikonfigurasi dengan menunjuk ke titik akhir S3 tanpa bucket yang cocok, AWS pengguna mana pun dapat membuat bucket tersebut dan memublikasikan konten di bawah alias yang dikonfigurasi, meskipun kepemilikannya tidak sama.

Untuk alasan yang sama, kami menyarankan Anda mengubah atau menghapus yang sesuai CNAME atau alias saat menghapus ember.

Cara mengaitkan nama host dengan bucket Amazon S3

Untuk mengaitkan nama host dengan bucket Amazon S3 dengan menggunakan alias CNAME
  1. Pilih nama host milik domain yang Anda kontrol.

    Contoh ini menggunakan subdomain images dari domain example.com.

  2. Buat bucket yang sesuai dengan nama host.

    Dalam contoh ini, nama host dan bucket adalah images.example.com. Nama bucket harus sama persis dengan nama host.

  3. Buat CNAME DNS catatan yang mendefinisikan nama host sebagai alias untuk bucket Amazon S3.

    Sebagai contoh:

    images.example.com CNAME images.example.com.s3.us-west-2.amazonaws.com

    penting

    Untuk alasan perutean permintaan, CNAME DNS catatan harus didefinisikan persis seperti yang ditunjukkan pada contoh sebelumnya. Jika tidak, maka catatan akan terlihat beroperasi dengan benar, tetapi pada akhirnya akan menghasilkan perilaku yang tidak dapat diprediksi.

    Prosedur untuk mengkonfigurasi CNAME DNS catatan tergantung pada DNS server atau DNS penyedia Anda. Untuk informasi khusus, lihat dokumentasi server Anda atau hubungi penyedia Anda.

Keterbatasan

SOAPsupport over HTTP tidak digunakan lagi, tetapi masih SOAP tersedia di atas. HTTPS Fitur Amazon S3 baru tidak didukung untuk. SOAP Alih-alih menggunakanSOAP, kami sarankan Anda menggunakan salah satu REST API atau AWS SDKs.

Kompatibilitas mundur

Bagian berikut mencakup berbagai aspek kompatibilitas mundur Amazon S3 yang berhubungan dengan permintaan gaya jalur dan gaya host virtual. URL

Titik akhir legasi

Beberapa Wilayah mendukung titik akhir legasi. Anda mungkin melihat titik akhir ini di log atau AWS CloudTrail log akses server Anda. Untuk informasi lebih lanjut, tinjau informasi berikut. Untuk daftar lengkap titik akhir dan Wilayah Amazon S3, lihat Titik akhir dan kuota Amazon S3 di Referensi Umum Amazon Web Services.

penting

Meskipun Anda mungkin melihat titik akhir legasi di log Anda, kami menyarankan Anda untuk selalu menggunakan sintaks titik akhir standar untuk mengakses bucket Anda.

Gaya host virtual Amazon S3 menggunakan format berikut: URLs

https://bucket-name.s3.region-code.amazonaws.com/key-name

Di Amazon S3, gaya jalur URLs menggunakan format berikut:

https://s3.region-code.amazonaws.com/bucket-name/key-name

s3‐Wilayah

Beberapa Wilayah Amazon S3 yang lebih lama mendukung titik akhir yang berisi tanda hubung (-) antara s3 dan kode Wilayah (misalnya, s3‐us-west-2), daripda titik (misalnya, s3.us-west-2). Jika bucket Anda berada di salah satu Wilayah ini, Anda mungkin melihat format titik akhir berikut di log atau CloudTrail log akses server Anda:

https://bucket-name.s3-region-code.amazonaws.com

Dalam contoh ini, nama bucket adalah amzn-s3-demo-bucket1 dan Region adalah US West (Oregon):

https://amzn-s3-demo-bucket1.s3-us-west-2.amazonaws.com

Titik akhir global legasi

Untuk beberapa Wilayah, Anda dapat menggunakan titik akhir global legasi untuk membuat permintaan yang tidak menentukan titik akhir spesifik Wilayah. Titik akhir global legasi adalah sebagai berikut:

bucket-name.s3.amazonaws.com

Di log atau CloudTrail log akses server, Anda mungkin melihat permintaan yang menggunakan titik akhir global lama. Dalam contoh ini, nama bucket adalah amzn-s3-demo-bucket1 dan titik akhir global legasi adalah:

https://amzn-s3-demo-bucket1.s3.amazonaws.com
Permintaan dengan cara hosting virtual untuk AS Timur (Virginia Utara)

Permintaan yang dibuat dengan titik akhir global legasi secara default ke Wilayah AS Timur (Virginia Utara). Oleh karena itu, titik akhir global legasi terkadang digunakan sebagai pengganti titik akhir Wilayah untuk AS Timur (Virginia Utara). Jika Anda membuat bucket di AS Timur (Virginia Utara) dan menggunakan titik akhir global, Amazon S3 mengirimkan permintaan Anda ke Wilayah ini secara default.

Permintaan dengan cara hosting virtual untuk Wilayah Lain

Titik akhir global legasi juga digunakan untuk permintaan dengan cara hosting virtual di Wilayah lain yang didukung. Jika Anda membuat bucket di Wilayah yang diluncurkan sebelum 20 Maret 2019, dan menggunakan titik akhir global lama, Amazon S3 memperbarui DNS catatan untuk mengalihkan permintaan ke lokasi yang benar, yang mungkin membutuhkan waktu. Sementara itu, aturan standar berlaku, dan permintaan dengan cara hosting virtual Anda dimasukkan ke Wilayah AS Timur (Virginia Utara). Amazon S3 kemudian mengarahkannya dengan Pengalihan Sementara HTTP 307 ke Wilayah yang benar.

Untuk bucket S3 di Wilayah yang diluncurkan setelah 20 Maret 2019, DNS server tidak merutekan permintaan Anda langsung ke Wilayah AWS tempat bucket Anda berada. Ini mengembalikan kesalahan HTTP 400 Bad Request sebagai gantinya. Untuk informasi selengkapnya, lihat Membuat permintaan di Referensi Amazon S3 API.

Permintaan cara jalur

Untuk Wilayah AS Timur (Virginia Utara), Anda dapat menggunakan titik akhir global legasi untuk permintaan cara jalur.

Untuk semua Wilayah lainnya, sintaks cara jalur mengharuskan Anda menggunakan titik akhir spesifik-Wilayah saat mencoba mengakses bucket. Jika Anda mencoba mengakses bucket dengan titik akhir global lama atau titik akhir lain yang berbeda dari yang untuk Wilayah tempat bucket berada, Anda akan menerima kesalahan Redirect Sementara kode HTTP respons 307 dan pesan yang menunjukkan sumber daya yang benar. URI Misalnya, jika Anda menggunakan https://s3.amazonaws.com/bucket-name bucket yang dibuat di Wilayah AS Barat (Oregon), Anda akan menerima kesalahan Pengalihan Sementara HTTP 307.