Bahasa Indonesia

Video & subtitle · Pengunduh Media Langsung

Asal nama file yang diunduh: jalur URL vs Disposisi Konten

· Cara kerjanya

http unduhan media

Header respons dan jalur URL berkumpul pada satu nama unduhan yang sudah dibersihkan
Ilustrasi vektor ToolAcre asli

Menjelaskan bagaimana browser memutuskan apa yang akan disebut file yang disimpan: segmen terakhir dari URL, header Disposisi Konten server, dan atribut unduhan yang dapat diatur oleh alat. Menunjukkan mengapa URL yang bersih terkadang masih menghasilkan nama file yang buruk.

File disimpan sebagai 'file.php' dan tidak akan dibuka — masalah penamaan yang dapat disembunyikan oleh tautan langsung

URL yang diakhiri dengan `file.php?id=42` dapat mengirimkan byte video sambil meninggalkan browser dengan nama jalur yang tidak membantu. Sebaliknya, alamat yang diakhiri dengan `.mp4` dapat menghasilkan HTML. Nama file adalah label yang dipilih dari metadata permintaan dan respons, bukan bukti tentang muatan di dalamnya.

Direct Media Downloader menghitung nama yang disarankan hanya setelah respons GET yang berhasil tiba. Ia memeriksa Disposisi Konten terlebih dahulu, lalu segmen jalur terakhir yang tidak kosong, lalu fallback kecil berbasis MIME. Perintah ini lebih sempit dan lebih dapat diprediksi daripada mengklaim bahwa browser melakukan negosiasi universal. Pemisahan ini mencegah materi otorisasi sementara bocor ke nama disk dan menghindari karakter nama file ilegal yang disumbangkan oleh seluruh string kueri.

Segmen jalur terakhir: tebakan default — bagaimana browser membaca nama file dari URL dan di mana string kueri membingungkannya

Kandidat jalur adalah segmen terakhir setelah pemisahan garis miring, yang didekodekan dari pengkodean persen. Parameter kueri tidak disertakan karena URL API menyimpannya secara terpisah. Jadi `/episodes/launch.mp3?token=...` menghasilkan `launch.mp3`, sedangkan garis miring tidak memiliki segmen akhir dan memerlukan sumber lain.

Aturan jalur ini tidak menentukan apakah suatu ekstensi jujur. Rute pengiriman yang ditandatangani dapat menyembunyikan gelar manusia dalam suatu parameter, dan implementasi ini tidak akan menambang kunci kueri nama yang sewenang-wenang. Pembatasan ini menghindari kesalahan dalam mengartikan komponen tanda tangan, nilai kampanye, atau pengidentifikasi rekaman sebagai nama file. Jika kedua formulir ada, formulir internasional dapat mempertahankan nama non-ASCII dengan lebih jelas, sedangkan fallback menangani implementasi server yang lebih sederhana.

Disposisi Konten: saran server — bagaimana header dapat menggantikan nama URL dan mengapa beberapa CDN mengaturnya dan yang lainnya tidak

Disposisi Konten dapat berisi saran `filename=` biasa atau formulir UTF-8 `filename*=` yang dikodekan. ToolAcre mengutamakan bentuk bintang yang dikodekan dan mencoba mendekode persen; jika decoding gagal, maka transfer tersebut akan jatuh ke bentuk biasa dan kemudian ke logika jalur daripada menghentikan transfer yang telah selesai.

Header hanyalah saran dari tuan rumah yang melayani. Kode aplikasi tidak memeriksa metadata media untuk memverifikasinya, dan server yang menyesatkan dapat memberikan nama yang menyesatkan. Tinjau karakter dan ekstensi yang tidak biasa sebelum membuka file, terutama ketika host sumber tidak dikenal. URL objek adalah referensi browser sementara, bukan alamat jarak jauh, dan penggunaannya tidak membuat unggahan lain atau permintaan HTTP untuk badan media.

Atribut unduhan: alat apa yang dapat mengatur dirinya sendiri — bagaimana pengunduh sisi browser dapat memilih nama untuk Blob yang disimpannya

Setelah Blob siap, UI meneruskan Blob dan nama file yang dipilih ke utilitas unduhan bersama. Utilitas itu memicu perilaku penyimpanan browser dengan objek URL dan nama unduhan. Header server tidak lagi dikonsultasikan pada klik terakhir karena sarannya telah diselesaikan.

Mekanisme ini tidak mengganti nama file disk yang ada atau memilih folder. Pengaturan browser masih menentukan apakah dialog akan muncul dan bagaimana nama duplikat ditangani. ToolAcre memasok satu kandidat; browser dan pengunjung tetap bertanggung jawab atas hasil akhir sistem file. Pengguna harus menolak “memperbaiki” ketidakcocokan hanya dengan mengganti nama saja; periksa penampung dan codec sebenarnya sebelum memutuskan apakah metadata atau konten perlu diperbaiki.

Ekstensi dan tipe MIME: menjaganya tetap konsisten — mengapa file bernama .mp4 yang sebenarnya WebM membingungkan pemain

Nama `.mp4` yang dipasangkan dengan `video/webm` dapat membingungkan perangkat lunak yang merutekan berdasarkan ekstensi, meskipun pemain yang cakap dapat memeriksa byte. ToolAcre mempertahankan nama jalur atau header daripada menulis ulang ekstensinya agar sesuai dengan Tipe Konten. Ini juga mempertahankan nilai server MIME di Blob.

Jika tidak ada header dan segmen jalur, fallback mengenali Tipe Konten yang berisi WebM atau MP4 dan mengembalikan `download.webm` atau `download.mp4`; setiap tipe lainnya menjadi `download.bin`. Nilai audio MIME saat ini tidak menerima ekstensi khusus melalui cabang pilihan terakhir ini. Jika tanda tangan kedaluwarsa antara HEAD dan GET, tidak ada nama file yang menang karena permintaan isi gagal; penamaan dimulai hanya setelah respons berhasil dibaca.

Contoh praktis: satu tautan CDN yang ditandatangani dan tiga kemungkinan nama file — menelusuri nama mana yang menang dan alasannya

Ambil alamat CDN bertanda tangan yang jalurnya berakhiran `asset`, yang responsnya menyatakan `filename*=UTF-8''approved%20cut.mp4`, dan bertipe `video/mp4`. Header yang dikodekan menang, menghasilkan `approved cut.mp4`. Hapus header dan jalur menghasilkan `asset`; hapus segmen itu juga dan MIME penggantian akan menghasilkan `download.mp4`.

`filename="review.webm"` biasa akan menang jika tidak ada nilai bintang yang dapat digunakan, meskipun jalurnya menyatakan `clip.mp4`. Contoh ini menunjukkan prioritas, bukan validasi. Memeriksa Tipe Konten dan membuka hasil yang disimpan dalam perangkat lunak tepercaya tetap merupakan pemeriksaan terpisah setelah nama dipilih. Katalog juga dapat mencatat checksum setelah disimpan, namun hashing berada di luar pengunduh ini dan tidak boleh tersirat oleh jumlah byte yang ditampilkan.

Apa yang tidak tercakup dalam hal ini — mengganti nama setelah diunduh, memberi nama batch, atau membaca metadata di dalam file untuk menamainya

Pengunduh tidak melakukan penomoran batch file, membaca tag judul dari wadah media, membersihkan katalog arsip, atau memperbaiki ekstensi yang menyesatkan setelah menyimpannya. Ia juga tidak dapat menjanjikan bahwa setiap variasi tata bahasa Disposisi Konten akan cocok dengan ekspresi reguler terfokusnya.

Mengganti nama nanti adalah tugas sistem operasi. Jika penamaan arsip penting, catat sumber URL, jenis respons, jumlah byte, dan nama deskriptif yang disetujui di katalog Anda sendiri. Jangan perlakukan header yang nyaman sebagai asal atau ekstensi nama file sebagai identitas kriptografi. Persentase pengkodean yang salah dalam suatu jalur adalah masalah kualitas host lainnya; fallback saat ini tidak mengklaim untuk membersihkan setiap nama yang disediakan server ke dalam aturan setiap sistem operasi.

Kesimpulan: namanya merupakan negosiasi antara URL, header dan alat — apa yang harus diperiksa pada nama dan ekstensi file yang disimpan setelah menggunakan Direct Media Downloader

Prioritas yang diterapkan bersifat konkret: nama file bintang UTF-8 yang valid, nama file biasa, segmen jalur akhir yang didekodekan, lalu `download.webm`, `download.mp4`, atau `download.bin`. String kueri dapat mengotorisasi pengiriman tanpa menjadi bagian dari nama yang disimpan. Hal ini menjelaskan banyaknya kejutan “unduhan” dan “indeks”.

Setelah menggunakan Direct Media Downloader, bandingkan nama, ekstensi, Tipe Konten, sumber yang diharapkan, dan pemutaran sebenarnya. Pengamatan ini menjawab pertanyaan yang berbeda. Nama file yang bersih meningkatkan penanganan, tetapi hanya byte host dan aplikasi penerima yang menentukan isi sebenarnya dari file tersebut. Pemilihan nama file meningkatkan kegunaan, sementara asalnya masih berasal dari sumber resmi, permintaan tercatat, dan pemeriksaan independen terhadap byte yang diselesaikan.