Saat Anda mengakses file dari browser menggunakan Nama domain OSS, file tersebut diunduh alih-alih ditampilkan dalam pratinjau. Topik ini menjelaskan penyebab dan cara mengatasinya.
Deskripsi Masalah
Ketika mengakses file yang disimpan di Object Storage Service (OSS) melalui browser menggunakan Nama domain OSS, file tersebut secara otomatis diunduh, bukan ditampilkan dalam pratinjau.
Penyebab
Untuk bucket yang dibuat setelah pukul 18.00 pada 29 September 2019, OSS menerapkan kebijakan keamanan pada objek yang diakses melalui Nama domain OSS. Jika Content-Type objek tersebut sesuai dengan salah satu nilai berikut, OSS menambahkan dua header respons HTTP yang memaksa browser mengunduh file alih-alih menampilkannya secara inline:
image/jpeg
image/gif
image/tiff
image/png
image/webp
image/svg+xml
image/bmp
image/x-ms-bmp
image/x-cmu-raster
image/exr
image/x-icon
image/heic
OSS menambahkan header berikut ke dalam respons:
x-oss-force-download: true
Content-Disposition: attachment
Header Content-Disposition: attachment menginstruksikan browser untuk memperlakukan respons sebagai unduhan file, bukan untuk ditampilkan secara inline.
Contoh Permasalahan
Sebagai contoh, sebuah bucket dibuat setelah pukul 18.00 pada 29 September 2019 dan berisi objek bernama apple.jpeg dengan Content-Type image/jpeg. Saat Anda mengakses objek ini melalui browser menggunakan Nama domain OSS standar, OSS menambahkan dua header yang disebutkan sebelumnya ke dalam respons. Browser kemudian mendeteksi header Content-Disposition: attachment dan memulai proses unduh alih-alih menampilkan pratinjau.
GET /apple.jpeg HTTP/1.1
HTTP/1.1 200 OK
Content-Type: image/jpeg
Content-Disposition: attachment
x-oss-force-download: true
Solusi
OSS hanya menerapkan kebijakan keamanan forced-download pada permintaan yang dilakukan melalui Nama domain OSS. Untuk memungkinkan pratinjau file di browser, akses objek tersebut melalui nama domain kustom. Untuk informasi selengkapnya, lihat Map a custom domain name.