Mga gabay

Paano Magdagdag ng File Uploads sa App Mo: Storage, Limits at Security

Para magdagdag ng file uploads sa app mo, i-store ang mga file sa object storage (isang bucket), hindi sa disk ng server o sa loob ng database, at mag-save ng maliit na record sa database na naglalaman ng key, pangalan, size, type at owner ng file. Suriin ang size at type ng file sa server, at magpasya nang maaga kung pampubliko ang mga file (gaya ng product photos) o pribado (gaya ng invoices). Ihatid lang ang pribadong files pagkatapos suriin kung sino ang humihingi. Sa AI app builder, mailalarawan mo ang upload feature sa isang prompt; ang mahalaga ay subukan kung nananatili ang mga file pagkatapos ng redeploy at hindi ito mabubuksan ng maling tao.

Alamin kung anong uri ng uploads ang kailangan mo

Bago mag-build, sagutin ang tatlong tanong:

  1. Anong mga file? Profile photos, product images, PDFs, spreadsheets, audio, video. Ito ang nagtatakda ng type at size limits.
  2. Sino ang makakakita? Lahat (pampublikong gallery) o ang nag-upload at mga admin lang (kontrata, ID documents, client files).
  3. Ano ang mangyayari pagkatapos ng upload? I-store lang, magpakita ng preview, mag-resize ng larawan, o basahin ang laman.

Magkaiba ang setup ng pampublikong larawan at pribadong dokumento, kaya ito ang unang ayusin.

Saan dapat nakalagay ang files

OpsyonPaano ito gumaganaAngkop para saBantayan
Object storage (bucket)Mga file na nakalagay sa serbisyong ginawa para dito; ang database mo ay nag-iimbak ng key o URLHalos lahat ng appDapat tama ang access rules
Storage na ibinigay ng platformIne-enable ng app builder o host mo ang bucket para sa iyoMga app na ginawa sa platform na iyonSumusunod ang limits at presyo sa platform
Server diskMga file na isinusulat sa filesystem ng app serverLokal na development langKadalasang nabubura sa restart o redeploy
Sa databaseAng mismong bytes ng file ay nasa tableHalos hindi kailanmanPinalalaki ang database, pinapabagal ang backups
Third-party upload widgetHinahawakan ng hosted na uploader service ang buong daloyMabibigat na media, image transformsIsa pang vendor, account at bayarin

Para sa karamihan ng app, ang object storage kasama ang database record ang tamang sagot. Ang database row ang tinatanong ng app mo ("ipakita ang mga dokumento ng user na ito"); ang bucket ay nagtataglay lang ng mga bytes.

Pampubliko kumpara sa pribadong files

  • Pampublikong files (product photos, blog images, avatars) ay puwedeng ihain mula sa public URL. Sinumang may link ay makakabukas nito, at ayos lang iyon para sa ganitong content.
  • Pribadong files (invoices, kontrata, medical o ID documents, client deliverables) ay hindi dapat magkaroon ng public URL na madaling mahulaan. Sinusuri ng server na ang naka-log in na user ay may-ari ng file o may permiso, saka ito ibinabalik bilang stream o nagbabalik ng signed URL: link na gumagana lang sa maikling panahon.

Karaniwan at malubhang bug ang pribadong files na nakalagay sa public bucket na may mahuhulaang pangalan. Sinumang manghula ng /uploads/invoice-102.pdf ay makakakuha ng invoice ng iba.

Mga halimbawang prompt

Pampublikong image upload:

Hayaang mag-upload ang admins ng hanggang 5 product photos bawat produkto. Tanggapin ang JPG, PNG at WebP na hanggang 5 MB bawat isa. I-store ang mga file sa file storage, i-save ang key, size at order ng bawat file sa product_images table, at magpakita ng thumbnails na may remove button. I-validate ang type at size sa server, hindi lang sa browser.

Pribadong document upload:

Magdagdag ng Documents page para sa mga naka-log in na client. Puwedeng mag-upload ang clients ng PDF na hanggang 20 MB. Pribado ang mga file: i-store sa file storage, i-save ang owner ID, orihinal na filename, size at oras ng upload sa documents table, at ang may-ari at admins lang ang puwedeng mag-download. Dumaraan ang downloads sa server route na sumusuri ng permiso. Huwag kailanman maglagay ng public URL para sa mga file na ito.

Mga kapaki-pakinabang na follow-up:

Magpakita ng progress bar habang nag-u-upload at malinaw na error kung masyadong malaki o maling type ang file.

Kapag nabura ang document row, burahin din ang naka-store na file.

Step by step

  1. Magpasya ng types at size limits para sa bawat upload field. Maging tiyak: "PDF hanggang 20 MB", hindi "documents".
  2. I-enable ang storage. Sa AI builder, hingin ang uploads at ise-set up ito; sa iba, gumawa ng bucket at idagdag ang credentials nito bilang server-side secrets.
  3. Gumawa ng database table para sa file records: ID, owner, storage key, orihinal na pangalan, type, size, created-at.
  4. Gumawa ng upload route sa server: suriin na naka-log in ang user, suriin ang type at size, gumawa ng ligtas na storage key (hindi ang filename ng user), i-save ang file, at ipasok ang record.
  5. Gumawa ng download o display path: public URL para sa pampublikong files; route na sumusuri ng permiso o signed URL para sa pribado.
  6. Gumawa ng UI: file picker, drag and drop kung kapaki-pakinabang, progress, previews, mga error.
  7. Hawakan ang deletes para ang pag-alis ng record ay nag-aalis din ng naka-store na file.
  8. Subukan: mag-upload, mag-reload, mag-redeploy o mag-publish, at tingnan kung nag-lo-load pa rin ang file. Pagkatapos, mag-log in bilang ibang user at subukang buksan ang pribadong file ng unang user.

Mga karaniwang pagkakamali

  • Pagsusulat ng uploads sa disk ng server. Gumagana ito sa development, pero nawawala ang files pagkatapos ng restart o redeploy.
  • Pagtitiwala sa checks ng browser. Ang "accept" setting ng file input ay hint lang, hindi seguridad. Suriin ang type at size sa server.
  • Paggamit ng filename ng user bilang storage key. Nagbabanggaan ang mga pangalan at maaaring may kakaibang character. Gumawa ng natatanging key at i-save nang hiwalay ang orihinal na pangalan.
  • Public buckets para sa pribadong files. Tingnan sa itaas; ito ang uri ng pagkakamaling napapabalita.
  • Pagpayag sa anumang file type. Ang HTML o SVG na files na inihahain mula sa domain mo ay maaaring magpatakbo ng scripts sa ilang setup. Tanggapin lang ang mga type na kailangan mo.
  • Walang size limit. Maaaring maubos ng isang malaking upload ang storage allowance mo o mag-time out ang request.
  • Mga ulilang file. Ang pagbura sa database row pero hindi sa file ay unti-unting pinupuno ang storage na binabayaran mo.
  • Nakakalimutan ang mobile. Maaaring malaki ang phone photos at nasa mga format tulad ng HEIC; magpasya kung tatanggapin o iko-convert ang mga ito.

Checklist

  • Napupunta ang files sa object storage, hindi sa server disk o sa database
  • May database record ang bawat file na may owner, key, pangalan, type at size
  • Sinusuri sa server ang type at size
  • Ginawang key ang storage keys, hindi kinuha sa filename
  • Pribadong files ay inihahain lang pagkatapos ng permission check
  • Hindi mabubuksan ng ibang user ang pribado mong files, kahit may link
  • Nabubura ang file kapag nabura ang record
  • Nag-lo-load pa rin ang files pagkatapos mag-publish o mag-redeploy
  • Malinaw ang error sa upload, kasama sa telepono

File uploads sa Mythex

Puwedeng i-enable ng Mythex nang kusa ang file storage para sa project kapag kailangan ng app mo ng uploads, kaya hindi mo kailangang mag-provision ng bucket nang mano-mano. Maaari mo ring i-type ang /storage sa chat. Available ito sa Free at Pro, na may 1 GB na limit sa Free, at makikita mo ang status nito sa Settings → Storage.

Malinaw sa docs na ang published hosting ay hindi permanenteng local filesystem, kaya hilingin sa agent na gumamit ng platform storage sa halip na mag-save sa disk. Ang nakaimbak na files at downloads ay binabayaran mula sa credit balance mo, ayon sa laki at kung gaano karami ang dina-download; kalahati ng Free rate ang sinisingil sa Pro. Tingnan ang File storage sa docs.

Kadalasang kasama ng uploads ang database para sa file records at login para sa pribadong files. Kung gumagawa ka ng lugar kung saan nagpapalitan ng dokumento ang clients, tingnan ang paano gumawa ng client portal, at dumaan sa security checklist bago mag-launch.

Mga tanong

Saan dapat i-store ang mga na-upload na file?

Sa object storage (serbisyong ginawa para sa files, kadalasang tinatawag na bucket), hindi sa disk ng app server at hindi sa loob ng database. Sa database mo i-store ang key o URL ng file, kasama ang detalye tulad ng pangalan, size at owner.

Bakit nawawala ang mga na-upload kong file pagkatapos mag-publish o mag-redeploy?

Karamihan ng hosting platforms ay walang permanenteng local disk: kapag nag-restart o nag-redeploy ang app, nawawala ang mga file na naisulat sa disk nito. I-save ang uploads sa object storage.

Paano ko pananatiling pribado ang mga na-upload na file?

Huwag gawing mababasa ng publiko ang mga file. Pasuriin sa server mo na ang naka-log in na user ay pinapayagang makita ang file, at ipadala ito o magbalik ng short-lived na signed link dito.

Sinusuportahan ba ng Mythex ang file uploads?

Oo. Puwedeng i-enable ng Mythex ang file storage para sa project kapag kailangan ng app ang uploads, sa Free at Pro, may 1 GB na limit sa Free. Hingin mo sa agent ang upload feature o i-type ang /storage.

Mythex · Pricing · Gumawa ng kahit ano gamit ang AI · Mga template ng website at app · Paghahambing ng Mythex · Glosaryo ng paggawa ng app gamit ang AI · Mga libreng tool sa paggawa ng app gamit ang AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)