Cara Menambah Muat Naik Fail ke Apl Anda: Storan, Had dan Keselamatan
Untuk menambah muat naik fail ke apl anda, simpan fail dalam storan objek (bucket), bukan pada cakera pelayan anda atau dalam pangkalan data, dan simpan rekod kecil dalam pangkalan data dengan kunci fail, nama, saiz, jenis dan pemilik. Semak saiz dan jenis fail di bahagian pelayan, tentukan awal sama ada fail itu awam (seperti foto produk) atau persendirian (seperti invois), dan hanya hidangkan fail persendirian selepas memeriksa siapa yang memintanya. Dalam pembina apl AI, anda boleh terangkan ciri muat naik dalam satu prompt; bahagian yang penting ialah menguji bahawa fail kekal selepas pelancaran semula dan tidak boleh dibuka oleh orang yang salah.
Tentukan jenis muat naik yang anda perlukan
Sebelum membina, jawab tiga soalan:
- Fail apa? Foto profil, imej produk, PDF, hamparan, audio, video. Ini menentukan had jenis dan saiz.
- Siapa boleh melihatnya? Semua orang (galeri awam) atau hanya pemuat naik dan pentadbir (kontrak, dokumen identiti, fail pelanggan).
- Apa yang berlaku selepas muat naik? Simpan sahaja, tunjukkan pratonton, ubah saiz imej, atau baca kandungannya.
Muat naik imej awam dan dokumen persendirian memerlukan persediaan yang berbeza, jadi tetapkan perkara ini dahulu.
Di mana fail patut berada
| Pilihan | Cara ia berfungsi | Sesuai untuk | Perkara yang perlu diberi perhatian |
|---|---|---|---|
| Storan objek (bucket) | Fail disimpan dalam perkhidmatan yang dibina untuknya; pangkalan data anda menyimpan kunci atau URL | Hampir setiap apl | Peraturan akses mesti ditetapkan dengan betul |
| Storan yang disediakan platform | Pembina apl atau hos anda mendayakan bucket untuk anda | Apl yang dibina di atas platform itu | Had dan harga mengikut platform |
| Cakera pelayan | Fail ditulis pada sistem fail pelayan apl | Pembangunan setempat sahaja | Selalunya dipadam semasa dimulakan semula atau dilancarkan semula |
| Dalam pangkalan data | Bait fail disimpan dalam jadual | Hampir tidak pernah | Membengkakkan pangkalan data, melambatkan sandaran |
| Widget muat naik pihak ketiga | Perkhidmatan muat naik yang dihoskan mengendalikan keseluruhan aliran | Media berat, transformasi imej | Vendor lain, akaun dan bil lain |
Bagi kebanyakan apl, storan objek ditambah rekod pangkalan data ialah jawapan yang tepat. Baris pangkalan data ialah apa yang ditanya oleh apl anda (“tunjukkan dokumen pengguna ini”); bucket sekadar menyimpan baitnya.
Fail awam berbanding persendirian
- Fail awam (foto produk, imej blog, avatar) boleh dihidangkan dari URL awam. Sesiapa sahaja yang mempunyai pautan boleh membukanya, yang tidak menjadi masalah untuk jenis kandungan ini.
- Fail persendirian (invois, kontrak, dokumen perubatan atau identiti, hasil kerja pelanggan) tidak boleh mempunyai URL awam yang boleh diteka. Pelayan menyemak bahawa pengguna yang log masuk memiliki atau dibenarkan fail itu, kemudian sama ada menstrimkannya semula atau memulangkan URL bertanda tangan: pautan yang hanya berfungsi untuk tempoh yang singkat.
Pepijat biasa dan serius ialah fail persendirian yang disimpan dalam bucket awam dengan nama yang boleh diramal. Sesiapa yang meneka /uploads/invoice-102.pdf akan mendapat invois orang lain.
Contoh prompt
Muat naik imej awam:
Benarkan admin memuat naik sehingga 5 foto produk bagi setiap produk. Terima JPG, PNG dan WebP sehingga 5 MB setiap satu. Simpan fail dalam storan fail, simpan kunci, saiz dan susunan setiap fail dalam jadual product_images, dan tunjukkan imej kecil dengan butang buang. Sahkan jenis dan saiz di bahagian pelayan, bukan hanya dalam pelayar.
Muat naik dokumen persendirian:
Tambah halaman Dokumen untuk pelanggan yang log masuk. Pelanggan boleh memuat naik PDF sehingga 20 MB. Fail adalah persendirian: simpan dalam storan fail, simpan ID pemilik, nama fail asal, saiz dan masa muat naik dalam jadual documents, dan hanya benarkan pemilik dan admin memuat turun. Muat turun melalui laluan pelayan yang menyemak kebenaran. Jangan sekali-kali dedahkan URL awam untuk fail ini.
Susulan yang berguna:
Tunjukkan bar kemajuan semasa muat naik dan ralat yang jelas jika fail terlalu besar atau jenisnya salah.
Apabila baris dokumen dipadam, padamkan juga fail yang disimpan.
Langkah demi langkah
- Pilih jenis dan had saiz bagi setiap medan muat naik. Jadilah spesifik: “PDF sehingga 20 MB”, bukan “dokumen”.
- Dayakan storan. Dalam pembina AI, minta muat naik dan ia akan menyediakan storan; di tempat lain, cipta bucket dan tambah kelayakannya sebagai rahsia bahagian pelayan.
- Cipta jadual pangkalan data untuk rekod fail: ID, pemilik, kunci storan, nama asal, jenis, saiz, masa dicipta.
- Bina laluan muat naik di pelayan: semak pengguna telah log masuk, semak jenis dan saiz, jana kunci storan yang selamat (bukan nama fail pengguna), simpan fail, masukkan rekod.
- Bina laluan muat turun atau paparan: URL awam untuk fail awam; laluan yang menyemak kebenaran atau URL bertanda tangan untuk fail persendirian.
- Bina UI: pemilih fail, seret dan lepas jika berguna, kemajuan, pratonton, ralat.
- Kendalikan pemadaman supaya membuang rekod juga memadamkan fail yang disimpan.
- Uji: muat naik, muat semula, lancarkan semula atau terbitkan semula, dan semak fail masih dimuatkan. Kemudian log masuk sebagai pengguna lain dan cuba buka fail persendirian pengguna pertama.
Kesilapan biasa
- Menulis muat naik ke cakera pelayan. Ia berfungsi dalam pembangunan, kemudian fail hilang selepas dimulakan semula atau dilancarkan semula.
- Mempercayai semakan pelayar. Tetapan “accept” pada input fail ialah petunjuk, bukan keselamatan. Semak jenis dan saiz di pelayan.
- Menggunakan nama fail pengguna sebagai kunci storan. Nama bertembung dan boleh mengandungi aksara pelik. Jana kunci unik dan simpan nama asal secara berasingan.
- Bucket awam untuk fail persendirian. Lihat di atas; inilah yang sering menjadi berita.
- Membenarkan sebarang jenis fail. Fail HTML atau SVG yang dihidangkan dari domain anda boleh menjalankan skrip dalam sesetengah persediaan. Terima hanya jenis yang anda perlukan.
- Tiada had saiz. Satu muat naik yang besar boleh menghabiskan peruntukan storan anda atau menamatkan permintaan.
- Fail yatim. Memadam baris pangkalan data tetapi tidak fail akan perlahan-lahan memenuhi storan yang anda bayar.
- Terlupa mudah alih. Foto telefon boleh besar dan dalam format seperti HEIC; tentukan sama ada hendak menerimanya atau menukarnya.
Senarai semak
- Fail pergi ke storan objek, bukan cakera pelayan atau pangkalan data
- Setiap fail mempunyai rekod pangkalan data dengan pemilik, kunci, nama, jenis dan saiz
- Jenis dan saiz disemak di pelayan
- Kunci storan dijana, bukan diambil daripada nama fail
- Fail persendirian hanya dihidangkan selepas semakan kebenaran
- Pengguna lain tidak boleh membuka fail persendirian anda, walaupun dengan pautan
- Memadam rekod turut memadamkan fail
- Fail masih dimuatkan selepas diterbitkan atau dilancarkan semula
- Ralat muat naik dipaparkan dengan jelas, termasuk pada telefon
Muat naik fail dalam Mythex
Mythex boleh mendayakan storan fail untuk projek secara automatik apabila apl anda memerlukan muat naik, jadi anda tidak perlu menyediakan bucket secara manual. Anda juga boleh menaip /storage dalam sembang. Ia tersedia pada Free dan Pro, dengan had 1 GB pada Free, dan anda boleh melihat statusnya di bawah Tetapan → Storan.
Dokumentasi jelas menyatakan bahawa hosting yang diterbitkan bukan sistem fail setempat yang kekal, jadi mintalah ejen menggunakan storan platform dan bukannya menyimpan ke cakera. Fail yang disimpan dan muat turun dicaj daripada baki kredit anda, mengikut saiz dan jumlah yang dimuat turun; Pro membayar separuh kadar Free. Lihat Storan fail dalam dokumentasi.
Muat naik selalunya berjalan seiring dengan pangkalan data untuk rekod fail dan log masuk untuk fail persendirian. Jika anda membina tempat untuk pelanggan bertukar dokumen, lihat cara membina portal pelanggan, dan semak senarai semak keselamatan sebelum pelancaran.
Soalan lazim
Di mana fail yang dimuat naik patut disimpan?
Dalam storan objek (perkhidmatan yang dibina untuk fail, selalunya dipanggil bucket), bukan pada cakera pelayan apl dan bukan dalam pangkalan data. Simpan hanya kunci atau URL fail, serta butiran seperti nama, saiz dan pemilik, dalam pangkalan data anda.
Mengapa fail yang dimuat naik hilang selepas saya menerbitkan atau melancarkan semula?
Kebanyakan platform hos tidak mengekalkan cakera setempat yang kekal: apabila apl dimulakan semula atau dilancarkan semula, fail yang ditulis pada cakeranya hilang. Simpan muat naik dalam storan objek sebaliknya.
Bagaimana saya memastikan fail yang dimuat naik kekal persendirian?
Jangan jadikan fail boleh dibaca secara awam. Pastikan pelayan anda menyemak bahawa pengguna yang log masuk dibenarkan melihat fail itu, kemudian hantarkannya atau pulangkan pautan bertanda tangan yang berjangka pendek.
Adakah Mythex menyokong muat naik fail?
Ya. Mythex boleh mendayakan storan fail untuk projek apabila apl memerlukan muat naik, pada Free dan Pro, dengan had 1 GB pada Free. Anda meminta ciri muat naik kepada ejen atau menaip /storage.