Vodniki

Kako dodati nalaganje datotek v svojo aplikacijo: shramba, omejitve in varnost

Nalaganje datotek v svojo aplikacijo dodate tako, da datoteke shranjujete v objektno shrambo (bucket), ne na disk strežnika ali v bazo podatkov, v bazo pa shranite majhen zapis s ključem datoteke, imenom, velikostjo, tipom in lastnikom. Velikost in vrsto datoteke preverite na strežniku, vnaprej se odločite, ali so datoteke javne (kot fotografije izdelkov) ali zasebne (kot računi), zasebne datoteke pa postrežete šele, ko preverite, kdo jih zahteva. V AI graditelju aplikacij lahko funkcijo nalaganja opišete z enim pozivom; pomembno je preizkusiti, da datoteke preživijo ponovno namestitev in da jih napačna oseba ne more odpreti.

Odločite, kakšna nalaganja potrebujete

Pred gradnjo odgovorite na tri vprašanja:

  1. Kakšne datoteke? Profilne slike, slike izdelkov, PDF-ji, preglednice, zvok, video. To določa omejitve tipa in velikosti.
  2. Kdo jih sme videti? Vsi (javna galerija) ali samo nalagatelj in skrbniki (pogodbe, dokumenti za identifikacijo, datoteke strank).
  3. Kaj se zgodi po nalaganju? Samo shranjevanje, prikaz predogleda, spreminjanje velikosti slik ali branje vsebine.

Javne slike in zasebni dokumenti zahtevajo različne nastavitve, zato to najprej uredite.

Kje naj datoteke živijo

MožnostKako delujePrimerno zaNa kaj paziti
Objektna shramba (bucket)Datoteke so shranjene v storitvi, zgrajeni zanje; vaša baza shrani ključ ali URLSkoraj vse aplikacijePravila dostopa morajo biti pravilno nastavljena
Shramba, ki jo zagotavlja platformaVaš graditelj aplikacij ali gostitelj vam omogoči bucketAplikacije, zgrajene na tej platformiOmejitve in cene sledijo platformi
Disk strežnikaDatoteke zapisane v datotečni sistem strežnika aplikacijeSamo lokalni razvojPogosto izbrisano ob ponovnem zagonu ali ponovni namestitvi
V bazi podatkovBajti datotek shranjeni v tabeliSkoraj nikoliNapihne bazo, upočasni varnostne kopije
Vtičnik za nalaganje tretjega ponudnikaGostovana storitev za nalaganje obravnava ves tokTežki mediji, transformacije slikŠe en ponudnik, račun in račun za plačilo

Za večino aplikacij je pravilen odgovor objektna shramba plus zapis v bazi podatkov. Vrstica v bazi je tisto, po čemer aplikacija poizveduje (»pokaži dokumente tega uporabnika«); bucket samo hrani bajte.

Javne in zasebne datoteke

  • Javne datoteke (fotografije izdelkov, slike blogov, avatarji) se lahko postrežejo z javnega URL-ja. Kdorkoli s povezavo jo lahko odpre, kar je za tovrstno vsebino v redu.
  • Zasebne datoteke (računi, pogodbe, zdravstveni ali osebni dokumenti za identifikacijo, dokumenti za stranke) ne smejo imeti javnega URL-ja, ki bi ga bilo mogoče uganiti. Strežnik preveri, ali je prijavljeni uporabnik lastnik datoteke ali ima dovoljenje, nato jo ali pretoči nazaj ali vrne podpisan URL: povezavo, ki deluje samo kratek čas.

Pogosta in resna napaka je zasebne datoteke shraniti v javen bucket s predvidljivimi imeni. Kdorkoli ugane /uploads/invoice-102.pdf, dobi tuj račun.

Primeri pozivov

Javno nalaganje slik:

Naj skrbniki naložijo do 5 fotografij izdelka na izdelek. Sprejmi JPG, PNG in WebP do 5 MB na datoteko. Datoteke shrani v shrambo datotek, ključ, velikost in vrstni red vsake datoteke shrani v tabelo product_images ter prikaži sličice z gumbom za odstranitev. Tip in velikost preverite na strežniku, ne samo v brskalniku.

Nalaganje zasebnega dokumenta:

Dodaj stran Dokumenti za prijavljene stranke. Stranke lahko naložijo PDF-je do 20 MB. Datoteke so zasebne: shrani jih v shrambo datotek, v tabelo documents shrani ID lastnika, izvirno ime datoteke, velikost in čas nalaganja ter dovoli prenos samo lastniku in skrbnikom. Prenosi potekajo prek strežniške poti, ki preveri dovoljenje. Nikoli ne izpostavi javnega URL-ja za te datoteke.

Koristna nadaljevanja:

Med nalaganjem prikaži vrstico napredka in jasno napako, če je datoteka prevelika ali napačnega tipa.

Ko se vrstica dokumenta izbriše, izbriši tudi shranjeno datoteko.

Korak za korakom

  1. Določite tipe in omejitve velikosti za vsako polje za nalaganje. Bodite konkretni: »PDF do 20 MB«, ne »dokumenti«.
  2. Omogočite shrambo. V AI graditelju zahtevajte nalaganje in ta jo bo nastavil; drugje ustvarite bucket in njegove poverilnice dodajte kot tajnosti na strežniku.
  3. Ustvarite tabelo v bazi za zapise datotek: ID, lastnik, ključ shrambe, izvirno ime, tip, velikost, čas ustvarjanja.
  4. Zgradite pot za nalaganje na strežniku: preverite, ali je uporabnik prijavljen, preverite tip in velikost, ustvarite varen ključ shrambe (ne uporabniškega imena datoteke), shranite datoteko in vstavite zapis.
  5. Zgradite pot za prenos ali prikaz: javni URL za javne datoteke; pot, ki preveri dovoljenje, ali podpisan URL za zasebne.
  6. Zgradite uporabniški vmesnik: izbirnik datotek, po potrebi povleci in spusti, napredek, predogledi, napake.
  7. Obravnavajte brisanja, da odstranitev zapisa odstrani tudi shranjeno datoteko.
  8. Preizkusite: naložite, osvežite, ponovno namestite ali objavite in preverite, ali se datoteka še vedno naloži. Nato se prijavite kot drug uporabnik in poskusite odpreti zasebno datoteko prvega uporabnika.

Pogoste napake

  • Pisanje nalaganj na disk strežnika. Deluje v razvoju, nato datoteke izginejo po ponovnem zagonu ali ponovni namestitvi.
  • Zaupanje preverjanjem v brskalniku. Nastavitev »accept« pri vnosu datoteke je namig, ne varnost. Tip in velikost preverite na strežniku.
  • Uporaba uporabniškega imena datoteke kot ključa shrambe. Imena se trčijo in lahko vsebujejo čudne znake. Ustvarite edinstven ključ in izvirno ime shranite ločeno.
  • Javni bucketi za zasebne datoteke. Glejte zgoraj; to je tista napaka, ki pride v novice.
  • Dovoljevanje katerega koli tipa datoteke. HTML ali SVG datoteke, postrežene z vaše domene, lahko v nekaterih nastavitvah zaženejo skripte. Sprejemajte samo tipe, ki jih potrebujete.
  • Brez omejitve velikosti. Eno ogromno nalaganje lahko porabi vašo shrambo ali pa zahtevo ustavi zaradi časovne omejitve.
  • Osirotele datoteke. Če izbrišete vrstico v bazi, datoteke pa ne, počasi napolnite shrambo, za katero plačujete.
  • Pozaba na mobilne naprave. Fotografije s telefonov so lahko velike in v formatih, kot je HEIC; odločite, ali jih sprejmete ali pretvorite.

Kontrolni seznam

  • Datoteke gredo v objektno shrambo, ne na disk strežnika ali v bazo
  • Vsaka datoteka ima zapis v bazi z lastnikom, ključem, imenom, tipom in velikostjo
  • Tip in velikost sta preverjena na strežniku
  • Ključi shrambe so ustvarjeni, niso vzeti iz imena datoteke
  • Zasebne datoteke se postrežejo šele po preverjanju dovoljenj
  • Drug uporabnik ne more odpreti vaših zasebnih datotek, tudi s povezavo
  • Odstranitev zapisa izbriše datoteko
  • Datoteke se še vedno naložijo po objavi ali ponovni namestitvi
  • Napake pri nalaganju so jasno prikazane, tudi na telefonu

Nalaganje datotek v Mythexu

Mythex lahko za projekt samodejno omogoči shrambo datotek, ko aplikacija potrebuje nalaganje, zato bucketa ne nastavljate ročno. Lahko pa v klepetu vtipkate /storage. Na voljo je v načrtih Free in Pro, pri načrtu Free z omejitvijo 1 GB, stanje pa si lahko ogledate pod Nastavitve → Shramba.

Dokumentacija jasno pove, da objavljeno gostovanje ni trajen lokalni datotečni sistem, zato od agenta zahtevajte shrambo, ki jo zagotavlja platforma, ne shranjevanja na disk. Shranjene datoteke in prenosi se plačujejo iz vašega stanja kreditov glede na velikost in glede na to, koliko se prenese; Pro plačuje polovično stopnjo Free. Glejte Shramba datotek v dokumentaciji.

Nalaganja običajno gredo z roko v roki z bazo podatkov za zapise datotek in prijavo za zasebne datoteke. Če gradite prostor, kjer stranke izmenjujejo dokumente, glejte kako zgraditi portal za stranke, pred lansiranjem pa pregledajte varnostni kontrolni seznam.

Vprašanja

Kje naj shranim naložene datoteke?

V objektni shrambi (storitev, zgrajena za datoteke, pogosto imenovana bucket), ne na disku strežnika aplikacije in ne v bazi podatkov. V svoji bazi shranite samo ključ ali URL datoteke ter podrobnosti, kot so ime, velikost in lastnik.

Zakaj moje naložene datoteke izginejo po objavi ali ponovni namestitvi?

Večina gostiteljskih platform nima trajnega lokalnega diska: ko se aplikacija znova zažene ali ponovno namesti, so datoteke, zapisane na njen disk, izgubljene. Naloge shranjujte v objektno shrambo.

Kako naj naložene datoteke ostanejo zasebne?

Ne naredite jih javno berljivih. Vaš strežnik preveri, ali sme prijavljeni uporabnik videti datoteko, nato jo pošlje ali vrne kratkotrajno podpisano povezavo do nje.

Ali Mythex podpira nalaganje datotek?

Da. Mythex lahko za projekt omogoči shrambo datotek, kadar aplikacija potrebuje nalaganje, v načrtih Free in Pro, pri čemer je pri Free omejitev 1 GB. Funkcijo nalaganja zahtevate pri agentu ali vtipkate /storage.

Mythex · Pricing · Zgradite karkoli z AI · Predloge za spletna mesta in aplikacije · Mythex v primerjavi · Slovar pojmov gradnje aplikacij z AI · Brezplačna orodja za gradnjo aplikacij z 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 Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)