Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Hosting virtual dari ember tujuan umum
Hosting virtual adalah praktik melayani beberapa situs web dari server web tunggal. Salah satu cara untuk membedakan situs dalam permintaan API REST Amazon S3 Anda adalah dengan menggunakan nama host yang jelas dari URI permintaan, bukan hanya bagian nama jalur dari URI. Permintaan REST Amazon S3 biasa menentukan bucket dengan menggunakan komponen yang dibatasi garis miring pertama dari jalur Request-URI. Sebagai gantinya, Anda dapat menggunakan hosting virtual Amazon S3 untuk menangani bucket tujuan umum dalam panggilan REST API dengan menggunakan header HTTPHost
. Dalam praktiknya, Amazon S3 menafsirkan Host
sebagai arti bahwa sebagian besar bucket secara otomatis dapat diakses untuk jenis permintaan terbatas di https://
. Untuk daftar lengkap titik akhir dan Wilayah Amazon S3, lihat Titik akhir dan kuota Amazon S3 di Referensi Umum Amazon Web Services.bucket-name
.s3.region-code
.amazonaws.com
Hosting virtual juga memiliki manfaat lain. Dengan menamai bucket Anda setelah nama domain terdaftar Anda dan dengan membuat nama DNS alias untuk Amazon S3, Anda dapat sepenuhnya menyesuaikan URL sumber daya Amazon S3, sebagai contoh, http://my.
. 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, bucket-name
.com/favicon.ico
, robots.txt
, dan crossdomain.xml
semuanya diharapkan dapat ditemukan di root.
penting
Saat Anda menggunakan bucket tujuan umum bergaya virtual dengan SSL, sertifikat wildcard SSL 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
Topik
Permintaan Cara Jalur
Saat ini, Amazon S3 mendukung akses URL dengan gaya hosting virtual dan gaya jalur di seluruh 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 dengan nama amzn-s3-demo-bucket1
di Wilayah AS Barat (Oregon), dan Anda ingin mengakses objek puppy.jpg
dalam bucket tersebut, Anda dapat menggunakan URL cara jalur berikut:
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 virtual URLs, kami telah memutuskan untuk menunda penghentian gaya jalur. URLs Untuk informasi lebih lanjut, lihat Rencana Penghentian Jalur Amazon S3-Cerita Seluruhnya
Awas
Saat menghosting konten situs web yang akan diakses dari browser web, hindari menggunakan gaya jalur URLs, 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 URI dengan cara hosting virtual, nama bucket adalah bagian dari nama domain di URL.
Amazon S3 URLs virtual-hosted—style menggunakan format berikut:
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
Spesifikasi bucket header Host
HTTP
Selama permintaan GET
Anda tidak menggunakan titik akhir SSL, Anda dapat menentukan bucket untuk permintaan menggunakan header Host
HTTP. Header Host
dalam permintaan REST diinterpretasikan sebagai berikut:
-
Jika header
Host
dihilangkan atau nilainyas3.
, bucket untuk permintaan akan menjadi komponen yang dibatasi garis miring pertama dari Request-URI, dan kunci untuk permintaan tersebut adalah sisa dari Request-URI. Ini adalah metode biasa, seperti yang digambarkan oleh contoh pertama dan kedua di bagian ini. Menghapus headerregion-code
.amazonaws.comHost
hanya valid untuk permintaan HTTP 1.0. -
Atau, jika nilai header
Host
berakhir di.s3.
, nama bucket adalah komponen utama nilai headerregion-code
.amazonaws.comHost
hingga.s3.
. Kunci untuk permintaan adalah Request-URI. Interpretasi ini memaparkan bucket sebagai subdomainregion-code
.amazonaws.com.s3.
, sebagaimana digambarkan oleh contoh ketiga dan keempat dalam bagian ini.region-code
.amazonaws.com -
Jika tidak, bucket permintaan adalah nilai huruf kecil dari header
Host
, dan kunci untuk permintaan adalah Request-URI. Interpretasi ini berguna ketika Anda telah mendaftarkan nama DNS yang sama dengan nama bucket Anda dan telah mengonfigurasikan nama tersebut menjadi nama kanonik (CNAME) alias untuk Amazon S3. Prosedur untuk mendaftarkan nama domain dan mengonfigurasi catatan DNS CNAME berada di luar cakupan panduan ini, tetapi hasilnya diilustrasikan oleh contoh akhir 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
URL-nya 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 header Host
adalah sebagai berikut:
GET /example.com/homepage.html HTTP/1.0
Untuk informasi tentang nama yang kompatibel dengan DNS, lihat Batasan. Untuk informasi lebih lanjut tentang kunci, lihat Kunci.
contoh — Gaya dan permintaan yang di-host virtual URLs
Contoh ini menggunakan hal berikut:
-
Nama Bucket ‐
amzn-s3-demo-bucket1
-
Wilayah ‐ Eropa (Irlandia)
-
Nama kunci ‐
homepage.html
URL-nya 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 – Metode alias CNAME
Untuk menggunakan metode ini, Anda harus mengonfigurasi nama DNS Anda sebagai CNAME alias untuk
. Untuk informasi selengkapnya, lihat Menyesuaikan Amazon URLs S3 dengan catatan CNAME. bucket-name
.s3.us-east-1.amazonaws.com
Contoh ini menggunakan hal berikut:
-
Nama Bucket ‐
example.com
-
Nama kunci ‐
homepage.html
URL-nya 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.
muncul di situs web atau layanan Anda. Sebagai contoh, jika Anda meng-hosting gambar situs web di Amazon S3, Anda mungkin lebih memilih region-code
.amazonaws.comhttp://images.example.com/
daripada http://images.example.com.s3.us-east-1.amazonaws.com/
. Setiap bucket dengan nama yang kompatibel dengan DNS dapat direferensikan sebagai berikut:
http://
, sebagai contoh, BucketName
.s3.Region
.amazonaws.com/[Filename
]http://images.example.com.s3.us-east-1.amazonaws.com/mydog.jpg
. Dengan menggunakan CNAME, Anda dapat memetakan images.example.com
ke nama host Amazon S3 agar URL sebelumnya dapat menjadi http://images.example.com/mydog.jpg
.
Nama bucket Anda harus sama dengan CNAME. Misalnya, jika Anda membuat CNAME untuk memetakan images.example.com
ke images.example.com.s3.us-east-1.amazonaws.com
, maka http://images.example.com/filename
dan http://images.example.com.s3.us-east-1.amazonaws.com/filename
akan sama.
Catatan DNS CNAME harus membuat alias nama domain Anda dengan nama host dengan cara hosting virtual yang sesuai. Misalnya, jika nama bucket dan nama domain Anda adalah images.example.com
dan bucket Anda berada di Wilayah AS Timur (Virginia Utara), catatan CNAME harus alias ke 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 bucket harus sama. Sebagai contoh, anggaplah Anda telah mengonfigurasi www.example.com
sebagai CNAME untuk www.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 menyadari pemetaan CNAME yang digunakan untuk menyelesaikan permintaan.
Anda dapat menggunakan titik akhir Amazon S3 apa pun dalam alias CNAME. Misalnya, s3.ap-southeast-1.amazonaws.com
dapat digunakan dalam alias CNAME. Untuk informasi selengkapnya tentang titik akhir, lihat Meminta titik akhir di Referensi API Amazon 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 with CNAMEs, Anda harus memastikan ada bucket yang cocok untuk catatan CNAME atau alias yang Anda konfigurasikan. Misalnya, jika Anda membuat entri DNS untuk www.example.com
dan login.example.com
memublikasikan 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, sebaiknya Anda mengubah atau menghapus CNAME atau alias yang sesuai saat menghapus bucket.
Cara mengaitkan nama host dengan bucket Amazon S3
Cara mengaitkan nama host dengan bucket Amazon S3 dengan menggunakan alias CNAME
-
Pilih nama host milik domain yang Anda kontrol.
Contoh ini menggunakan subdomain
images
dari domainexample.com
. -
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. -
Buat catatan DNS CNAME 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, catatan DNS CNAME harus ditentukan persis seperti yang ditunjukkan dalam contoh sebelumnya. Jika tidak, maka catatan akan terlihat beroperasi dengan benar, tetapi pada akhirnya akan menghasilkan perilaku yang tidak dapat diprediksi.
Prosedur untuk mengonfigurasi catatan DNS CNAME tergantung pada server DNS atau penyedia DNS Anda. Untuk informasi khusus, lihat dokumentasi server Anda atau hubungi penyedia Anda.
Keterbatasan
SOAP APIs for tidak tersedia untuk pelanggan baru, dan mendekati End of Life (EOL) pada 31 Agustus 2025. Kami menyarankan Anda menggunakan REST API atau AWS SDKs.
Kompatibilitas mundur
Bagian berikut mencakup berbagai aspek kompatibilitas mundur Amazon S3 yang terkait dengan permintaan URL dengan cara jalur dan cara hosting virtual.
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.
Amazon S3 URLs virtual-hosted—style menggunakan format berikut:
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 dalam log akses server Anda atau log CloudTrail:
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 legasi, Amazon S3 memperbarui catatan DNS untuk mengubah rute permintaan ke lokasi yang benar, yang mungkin memakan waktu. Sementara itu, aturan standar berlaku, dan permintaan dengan cara hosting virtual Anda dimasukkan ke Wilayah AS Timur (Virginia Utara). Amazon S3 kemudian mengalihkannya kembali dengan HTTP 307 Temporary Redirect ke Wilayah yang benar.
Untuk bucket S3 di Wilayah yang diluncurkan setelah 20 Maret 2019, server DNS tidak merutekan permintaan Anda langsung ke Wilayah AWS tempat bucket Anda berada. Sebagai gantinya, server mengembalikan pesan kesalahan HTTP 400 Bad Request. Untuk informasi selengkapnya, lihat Membuat permintaan di Referensi API Amazon S3.
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 Pengalihan Permanen kode respons HTTP 301 dan pesan yang menunjukkan URI yang benar untuk sumber daya Anda. Misalnya, jika Anda menggunakan https://s3.amazonaws.com/
bucket yang dibuat di Wilayah AS Barat (Oregon), Anda akan menerima kesalahan Pengalihan Permanen HTTP 301.bucket-name