Saat mengakses objek di Object Storage Service (OSS) melalui browser, objek tersebut mungkin diunduh secara otomatis alih-alih ditampilkan. Topik ini membantu Anda mengidentifikasi penyebabnya dan mengonfigurasi perilaku pratinjau yang diinginkan.
Atasi masalah
Jika objek diunduh secara otomatis, gunakan perintah curl untuk memeriksa header respons HTTP-nya dan mengidentifikasi penyebabnya.
Tujuan: Periksa apakah header respons HTTP berisi bidang tertentu yang memaksa pengunduhan.
Prosedur: Buka terminal atau command prompt, lalu jalankan perintah berikut. Ganti <your-object-URL> dengan URL aktual objek Anda.
curl -I "<your-object-URL>"
Analisis hasil: Setelah menjalankan perintah, periksa respons untuk bidang x-oss-force-download dan Content-Disposition.
-
Jika header respons mencakup
x-oss-force-download: true: Artinya kebijakan keamanan OSS untuk nama domain default telah dipicu. Lihat Skenario 1: Pengunduhan dipaksakan oleh kebijakan keamanan. -
Jika header respons tidak mencakup
x-oss-force-downloadtetapi mencakupContent-Disposition: attachment: Artinya metadata objek secara eksplisit menetapkan pengunduhan. Lihat Skenario 2: Pengunduhan dipaksakan oleh metadata objek. -
Jika header respons tidak mencakup kedua bidang tersebut tetapi objek tetap diunduh: Hal ini biasanya terjadi karena browser tidak mengenali tipe konten objek tersebut. Lihat Skenario 3: Content-Type yang salah mencegah pratinjau.
Solusi
Skenario 1: Pengunduhan dipaksakan oleh kebijakan keamanan
Skenario ini berlaku ketika header respons mencakup x-oss-force-download: true.
-
Penyebab: Untuk mencegah risiko keamanan potensial dari jenis file tertentu, seperti HTML, yang dieksekusi langsung di browser, OSS memaksa pengunduhan file dengan menambahkan header respons
x-oss-force-download: truedanContent-Disposition: attachment. Perilaku ini berlaku untuk beberapa jenis file di beberapa wilayah saat Anda menggunakan OSS default domain name atau transfer acceleration domain name untuk mengakses bucket yang dibuat setelah titik waktu tertentu.Untuk detail kebijakan, lihat Lampiran: Aturan forced download OSS.
-
Solusi: Akses sumber daya OSS menggunakan nama domain kustom.
-
Prosedur:
-
Bind nama domain kustom ke bucket: Masuk ke Konsol OSS. Di halaman Domain Names untuk bucket target, bind nama domain kustom yang memiliki pendaftaran ICP valid ke bucket tersebut.
-
Konfigurasikan rekaman CNAME: Buka penyedia DNS Anda, seperti Alibaba Cloud DNS, lalu tambahkan rekaman CNAME yang memetakan nama domain kustom Anda ke alamat CNAME yang disediakan oleh OSS.
-
Akses objek menggunakan nama domain baru: Setelah konfigurasi selesai, gunakan URL nama domain kustom untuk mengakses objek. Objek tersebut kemudian akan dipratinjau di browser.
-
-
Untuk akselerasi akses global, bind nama domain kustom Anda ke transfer acceleration domain name. Pendekatan ini melewati kebijakan forced download dan memberikan manfaat akselerasi.
-
Untuk instruksi detail, lihat Map custom domain names.
Skenario 2: Pengunduhan dipaksakan oleh metadata objek
Skenario ini berlaku ketika header respons mencakup Content-Disposition: attachment tetapi tidak mencakup bidang x-oss-force-download.
-
Penyebab: Bidang
Content-Dispositiondalam metadata objek secara eksplisit diatur keattachment. Pengaturan ini menginstruksikan browser untuk mengunduh objek sebagai lampiran alih-alih menampilkannya secara inline. Pengaturan ini sering digunakan untuk menghasilkan tautan unduh sementara. Jika tidak dihapus, pengaturan ini menyebabkan semua upaya akses berikutnya memicu pengunduhan. -
Solusi: Ubah metadata
Content-Dispositionobjek menjadiinline.-
Modifikasi di konsol
-
Masuk ke Konsol OSS, lalu navigasi ke halaman untuk bucket target.
-
Temukan objek target. Di kolom Actions, pilih .
-
Pada kotak dialog yang muncul, temukan bidang
Content-Dispositiondan ubah nilainya menjadiinline. -
Klik OK untuk menyimpan pengaturan.
-
-
Gunakan ossutil untuk pembaruan batch
# Tetapkan Content-Disposition objek tertentu menjadi inline. ossutil set-props oss://your-bucket/your-object.pdf --content-disposition inline --metadata-directive update
-
Skenario 3: Content-Type yang salah mencegah pratinjau
Pada skenario ini, header respons HTTP normal, tetapi browser tetap mengunduh objek.
-
Penyebab:
Content-Type(juga dikenal sebagai tipe MIME) dalam metadata objek salah atau tidak ada. Misalnya, jika gambar JPG memilikiContent-Typeberupaapplication/octet-stream, browser akan mengunduh objek karena tidak mengenali tipe kontennya. -
Solusi: Tetapkan
Content-Typeyang benar untuk objek tersebut.-
Modifikasi di konsol
-
Masuk ke Konsol OSS, lalu navigasi ke halaman untuk bucket target.
-
Temukan objek target. Di kolom Actions, pilih .
-
Pada kotak dialog yang muncul, temukan bidang
Content-Typedan ubah nilainya menjadi nilai yang benar. -
Klik OK untuk menyimpan pengaturan.
Contoh nilai Content-Type yang benar untuk jenis objek umum:
-
Gambar:
image/jpeg,image/png,image/gif,image/webp -
Video:
video/mp4 -
Dokumen PDF:
application/pdf -
File HTML:
text/html -
Teks biasa:
text/plain
-
-
Gunakan ossutil untuk pembaruan batch
# Tetapkan Content-Type objek tertentu menjadi image/jpeg. ossutil set-props oss://your-bucket/your-object.jpg --content-type image/jpeg --metadata-directive update
-
Skenario dan solusi lainnya
Perubahan metadata tidak efektif: Periksa cache CDN
Jika Anda menggunakan Content Delivery Network (CDN) untuk mempercepat akses ke OSS, perubahan pada metadata objek, seperti Content-Type atau Content-Disposition, mungkin tidak langsung berlaku karena node CDN masih menyajikan konten yang di-cache dengan header lama.
Solusi: Masuk ke konsol CDN dan purge URL objek yang dimodifikasi untuk menghapus cache CDN. Untuk instruksi detail, lihat Purge and prefetch resources.
Paksa objek untuk diunduh
Untuk memaksa objek diunduh alih-alih dipratinjau, gunakan salah satu metode berikut.
-
Metode 1 (Direkomendasikan): Konfigurasi di sisi OSS. Seperti dijelaskan dalam Skenario 2, atur metadata
Content-Dispositionobjek menjadiattachment. Metode ini ideal untuk menerapkan pengaturan unduh permanen pada objek individual. -
Metode 2: Konfigurasi di sisi CDN. Jika Anda menggunakan CDN, Anda dapat menambahkan header
Content-Disposition: attachmentdi konsol CDN dengan mengonfigurasi header respons HTTP di Cache Settings. Metode ini tidak mengharuskan Anda memodifikasi objek di origin OSS dan cocok untuk konfigurasi aturan batch serta fleksibel untuk path atau jenis file tertentu.
Format tidak didukung untuk pratinjau browser
Browser utama tidak mendukung pratinjau asli untuk beberapa format objek khusus, seperti .psd, .ai, dan .sketch. Dalam kasus ini, browser mengunduh objek meskipun konfigurasi OSS dan CDN sudah benar.
Solusi: Pasang ekstensi atau plug-in browser yang mendukung pratinjau format objek tertentu. Atau, Anda dapat menggunakan layanan pratinjau dokumen profesional, seperti WebOffice online preview.
Lampiran: Aturan forced download OSS
Saat objek diunduh secara tak terduga, periksa bidang x-oss-ec dalam header respons HTTP dan temukan entri yang sesuai dalam tabel di bawah ini untuk mengidentifikasi penyebabnya.
-
Kode error (x-oss-ec): Pengidentifikasi unik untuk aturan yang memicu pengunduhan.
-
Waktu pembuatan bucket: Untuk nama domain default, kebijakan berlaku untuk bucket yang dibuat pada atau setelah waktu efektif kebijakan. Bucket yang dibuat sebelum waktu ini umumnya tidak terpengaruh.
-
Waktu pengaktifan akselerasi transfer: Untuk nama domain akselerasi transfer, kebijakan berlaku untuk bucket di mana fitur tersebut diaktifkan pada atau setelah waktu efektif kebijakan. Bucket yang telah mengaktifkan akselerasi transfer sebelum waktu ini umumnya tidak terpengaruh.
Tidak peduli aturan mana yang cocok, Anda dapat melewati semua forced download dengan menggunakan nama domain kustom.
OSS default domain names
|
Waktu efektif |
Bucket Region |
Objek yang terpengaruh |
Jenis objek yang terpengaruh |
Kode error |
|
2018-09-28 08:00 |
China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Shenzhen), dan China (Chengdu) |
Bucket yang dibuat pada atau setelah waktu efektif |
text/html |
|
|
2019-09-25 12:00 |
China (Nanjing - Local Region, sedang dihentikan) China (Ulanqab), China (Heyuan), China (Guangzhou), AS (Silicon Valley), AS (Virginia), Korea Selatan (Seoul), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Filipina (Manila), Thailand (Bangkok), Inggris (London), dan UEA (Dubai) |
Bucket yang dibuat pada atau setelah waktu efektif |
text/html |
|
|
2019-11-25 14:00 |
Hong Kong (China) |
Bucket yang dibuat pada atau setelah waktu efektif |
text/html |
|
|
2019-09-23 17:00 |
China (Hohhot) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, text/html |
|
|
2019-09-24 11:00 |
China (Qingdao) dan China (Chengdu) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, text/html |
|
|
2019-09-24 17:00 |
China (Zhangjiakou) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, text/html |
|
|
2019-09-29 17:00 |
China (Shanghai) dan China (Shenzhen) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, text/html |
|
|
2019-09-29 18:00 |
China (Beijing) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, text/html |
|
|
2019-09-30 15:00 |
China (Hangzhou) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, text/html |
|
|
2022-10-09 00:00 |
Bucket yang dibuat oleh pengguna yang pertama kali mengaktifkan OSS pada atau setelah 2022-10-09 00:00 |
|||
|
2025-12-22 10:00 |
China (Ulanqab), China (Heyuan), China (Guangzhou), China (Nanjing - Local Region, sedang dihentikan) |
Bucket yang dibuat pada atau setelah waktu efektif |
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, dan image/heic |
|
|
2026-03-25 10:00 |
Bucket yang dibuat pada atau setelah waktu efektif |
Objek dengan nama file berakhiran .xml, atau objek dengan Content-Type application/xml atau text/xml |
N/A |
Transfer acceleration domain names
|
Waktu efektif |
Wilayah bucket |
Objek yang terpengaruh |
Jenis objek yang terpengaruh |
Kode error |
|
2020-12-31 00:00 |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |
text/html |
||
|
2021-01-07 12:00 |
UEA (Dubai) |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |
||
|
2021-01-07 18:00 |
Malaysia (Kuala Lumpur) dan Inggris (London) |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |
||
|
2021-01-08 18:00 |
Jepang (Tokyo), Indonesia (Jakarta), dan Jerman (Frankfurt) |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |
||
|
2021-01-14 12:00 |
AS (Silicon Valley), AS (Virginia), dan Singapura |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |
||
|
2021-01-16 00:00 |
Hong Kong (China) |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |
||
|
2022-10-09 00:00 |
Bucket yang dibuat oleh pengguna yang pertama kali mengaktifkan OSS pada atau setelah 2022-10-09 00:00 |
|||
|
2023-02-01 00:00 |
Korea Selatan (Seoul), Filipina (Manila), dan Thailand (Bangkok) |
Bucket yang diaktifkan akselerasi transfer-nya pada atau setelah waktu efektif |