Saat mengakses objek Object Storage Service (OSS) di browser, objek tersebut mungkin diunduh alih-alih dipratinjau secara online. Topik ini membantu Anda mengidentifikasi penyebabnya dan mengonfigurasi perilaku pratinjau yang sesuai untuk objek Anda.
Memecahkan masalah
Jika suatu objek diunduh, Anda dapat menggunakan perintah curl untuk memeriksa header respons dari URL objek dan dengan cepat mengidentifikasi akar permasalahannya.
Tujuan: Periksa apakah header respons berisi bidang tertentu yang memaksa pengunduhan.
Prosedur: Buka terminal atau command line interface (CLI) di komputer Anda dan jalankan perintah berikut. Ganti <your-object-url> dengan URL aktual objek Anda.
curl -I "<your-object-url>"Analisis hasil: Setelah menjalankan perintah, periksa keberadaan bidang x-oss-force-download dan Content-Disposition dalam respons.
Jika header respons berisi
x-oss-force-download: true: Kebijakan keamanan untuk nama domain default OSS telah dipicu. Untuk solusinya, lihat Skenario 1: Pengunduhan paksa akibat kebijakan keamanan OSS.Jika header respons tidak berisi
x-oss-force-downloadtetapi berisiContent-Disposition: attachment: Metadata objek dikonfigurasi untuk mengunduhnya sebagai lampiran. Untuk solusinya, lihat Skenario 2: Pengunduhan paksa akibat pengaturan metadata objek.Jika header respons tidak berisi kedua bidang tersebut tetapi objek tetap diunduh: Browser kemungkinan besar tidak dapat mengenali format file objek tersebut. Untuk solusinya, lihat Skenario 3: Browser gagal mempratinjau objek karena Content-Type yang salah.
Solusi
Skenario 1: Pengunduhan paksa akibat kebijakan keamanan OSS
Skenario ini terjadi ketika header respons berisi x-oss-force-download: true.
Penyebab: Untuk mencegah risiko keamanan yang muncul ketika jenis file tertentu, seperti HTML, dieksekusi langsung di browser, OSS menerapkan kebijakan keamanan. Saat Anda menggunakan OSS default domain name atau acceleration endpoint untuk mengakses objek di bucket yang dibuat setelah waktu tertentu, OSS menambahkan header
x-oss-force-download: truedanContent-Disposition: attachmentke respons. Hal ini memaksa browser untuk mengunduh objek.Untuk informasi lebih lanjut tentang kebijakan tersebut, lihat Lampiran: Referensi cepat aturan pengunduhan paksa OSS di akhir topik ini.
Solusi: Gunakan nama domain kustom untuk mengakses sumber daya OSS.
Prosedur:
Petakan nama domain kustom ke bucket: Masuk ke Konsol OSS. Di halaman Domain Names bucket target, petakan nama domain kustom Anda yang telah memiliki Pendaftaran ICP ke bucket tersebut.
Konfigurasi rekaman CNAME: Buka penyedia layanan nama domain Anda, seperti Alibaba Cloud DNS. Tambahkan rekaman CNAME yang mengarahkan 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 Anda untuk mengakses objek. Objek tersebut kemudian dapat dipratinjau secara online.
Jika Anda memerlukan akselerasi akses global, Anda dapat memetakan nama domain kustom Anda ke acceleration endpoint. Hal ini melewati kebijakan pengunduhan paksa dan menyediakan akses yang dipercepat.
Untuk informasi lebih lanjut, lihat Mengakses OSS menggunakan nama domain kustom.
Skenario 2: Pengunduhan paksa akibat pengaturan metadata objek
Skenario ini terjadi ketika header respons berisi Content-Disposition: attachment tetapi tidak berisi 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 pengaturan ini tidak dihapus, semua permintaan selanjutnya untuk objek tersebut akan memicu pengunduhan.Solusi: Ubah metadata
Content-Dispositionobjek menjadiinline.Ubah melalui konsol
Masuk ke Konsol OSS. Di panel navigasi sebelah kiri, buka halaman 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.
Ubah secara batch menggunakan ossutil
# Atur Content-Disposition objek yang ditentukan menjadi inline. ossutil set-props oss://your-bucket/your-object.pdf --content-disposition inline --metadata-directive update
Skenario 3: Browser gagal mempratinjau objek karena Content-Type yang salah
Skenario ini terjadi ketika header respons normal, tetapi browser tetap mengunduh objek.
Penyebab: Metadata
Content-Type(juga dikenal sebagai Multipurpose Internet Mail Extensions (MIME) type) objek tidak tersedia atau salah. Misalnya, jikaContent-Typegambar JPG salah diatur keapplication/octet-stream, browser akan mengunduh objek karena tidak dapat mengenali jenis file sebenarnya.Solusi: Tetapkan
Content-Typeyang benar untuk objek tersebut.Ubah melalui konsol
Masuk ke Konsol OSS. Di panel navigasi sebelah kiri, buka halaman 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 Content-Type yang benar untuk jenis file umum:
Gambar:
image/jpeg,image/png,image/gif,image/webpVideo:
video/mp4Dokumen PDF:
application/pdfFile HTML:
text/htmlTeks biasa:
text/plain
Ubah secara batch menggunakan ossutil
# Atur Content-Type objek yang ditentukan 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 berlaku: Periksa cache CDN
Jika Anda menggunakan Alibaba Cloud Content Delivery Network (CDN) untuk mempercepat akses ke OSS, perubahan pada metadata objek, seperti Content-Type atau Content-Disposition, mungkin tidak langsung berlaku. Hal ini karena titik kehadiran (POPs) CDN mungkin masih menyajikan versi cache dengan konfigurasi lama.
Solusi: Masuk ke konsol CDN dan purge cache untuk URL objek yang telah dimodifikasi. Untuk informasi lebih lanjut, lihat Refresh and prefetch resources.
Cara memaksa objek diunduh alih-alih dipratinjau
Jika Anda ingin selalu memaksa pengunduhan saat pengguna mengakses objek, Anda dapat menggunakan salah satu metode berikut.
Metode 1 (Direkomendasikan): Konfigurasi di OSS. Seperti dijelaskan dalam Skenario 2, atur metadata
Content-Dispositionobjek menjadiattachment. Metode ini ideal untuk menerapkan pengaturan permanen pada satu objek.Metode 2: Konfigurasi di CDN. Jika Anda menggunakan CDN, Anda dapat menambahkan header
Content-Disposition: attachmentdi konsol CDN. Anda dapat mengonfigurasi ini sebagai header respons outbound di Cache Settings. Metode ini tidak memerlukan perubahan pada objek sumber di OSS dan berguna untuk konfigurasi fleksibel secara batch berdasarkan path atau jenis file tertentu.
Browser tidak mendukung format file untuk pratinjau
Browser utama tidak mendukung pratinjau online untuk beberapa format file profesional, seperti .psd, .ai, atau .sketch. Dalam kasus ini, browser akan mengunduh file meskipun konfigurasi OSS dan CDN sudah benar.
Solusi: Anda dapat menginstal plugin browser yang mendukung pratinjau format file tersebut. Anda juga dapat menggunakan layanan pratinjau dokumen profesional, seperti WebOffice Online Preview.
Lampiran: Referensi cepat aturan pengunduhan paksa OSS
Jika suatu objek diunduh, periksa nilai bidang x-oss-ec dalam header respons HTTP. Kemudian, Anda dapat menggunakan tabel berikut untuk mengidentifikasi penyebabnya.
Kode error (x-oss-ec): ID unik aturan yang menyebabkan pengunduhan.
Waktu pembuatan bucket: Saat Anda menggunakan nama domain default, kebijakan biasanya hanya berlaku untuk bucket yang dibuat setelah waktu ini. Bucket yang dibuat sebelum waktu ini biasanya tidak terpengaruh.
Waktu saat akselerasi transfer diaktifkan: Setelah Anda mengaktifkan akselerasi transfer, kebijakan biasanya hanya berlaku untuk bucket yang mengaktifkan akselerasi transfer setelah waktu ini. Bucket yang telah mengaktifkan akselerasi transfer sebelum waktu ini biasanya tidak terpengaruh.
Menggunakan nama domain kustom melewati semua aturan pengunduhan paksa.
OSS default domain names
Waktu efektif kebijakan | Wilayah bucket | Objek yang terpengaruh | Jenis file yang terpengaruh | Kode Kesalahan |
08:00, 28 September 2018 | China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Shenzhen), China (Chengdu) | Bucket yang dibuat setelah kebijakan berlaku | text/html | |
12:00, 25 September 2019 | China (Nanjing - Local Region - Phasing Out) China (Ulanqab), China (Heyuan), China (Guangzhou), US (Silicon Valley), US (Virginia), Korea Selatan (Seoul), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Filipina (Manila), Thailand (Bangkok), UK (London), UAE (Dubai) | Bucket yang dibuat setelah kebijakan berlaku | text/html | |
14:00, 25 November 2019 | China (Hong Kong) | Bucket yang dibuat setelah kebijakan berlaku | text/html | |
17:00, 23 September 2019 | China (Hohhot) | Bucket yang dibuat setelah kebijakan berlaku | 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 | |
11:00, 24 September 2019 | China (Qingdao), China (Chengdu) | Bucket yang dibuat setelah kebijakan berlaku | 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 | |
17:00, 24 September 2019 | China (Zhangjiakou) | Bucket yang dibuat setelah kebijakan berlaku | 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 | |
17:00, 29 September 2019 | China (Shanghai), China (Shenzhen) | Bucket yang dibuat setelah kebijakan berlaku | 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 | |
18:00, 29 September 2019 | China (Beijing) | Bucket yang dibuat setelah kebijakan berlaku | 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 | |
15:00, 30 September 2019 | China (Hangzhou) | Bucket yang dibuat setelah kebijakan berlaku | 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 | |
00:00, 09 Oktober 2022 | Bucket yang dibuat oleh pengguna yang mengaktifkan OSS untuk pertama kali pada atau setelah 00:00, 9 Oktober 2022 | |||
10:00, 22 Desember 2025 | China (Ulanqab), China (Heyuan), China (Guangzhou), China (Nanjing - Local Region - Phasing Out) | Bucket yang dibuat setelah kebijakan berlaku | 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 |
Acceleration endpoint
Waktu efektif kebijakan | Wilayah bucket | Objek yang terpengaruh | Jenis file yang terpengaruh | Kode error |
00:00, 31 Desember 2020 | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku | text/html | ||
12:00, 07 Januari 2021 | UAE (Dubai) | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku | ||
18:00, 07 Januari 2021 | Malaysia (Kuala Lumpur), UK (London) | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku | ||
18:00, 08 Januari 2021 | Jepang (Tokyo), Indonesia (Jakarta), Jerman (Frankfurt) | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku | ||
12:00, 14 Januari 2021 | US (Silicon Valley), US (Virginia), Singapura | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku | ||
00:00, 16 Januari 2021 | China (Hong Kong) | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku | ||
00:00, 09 Oktober 2022 | Bucket yang dibuat oleh pengguna yang mengaktifkan OSS untuk pertama kali pada atau setelah 00:00, 9 Oktober 2022 | |||
00:00, 01 Februari 2023 | Korea Selatan (Seoul), Filipina (Manila), Thailand (Bangkok) | Bucket yang mengaktifkan akselerasi transfer setelah kebijakan berlaku |