Vodiči

Kako dodati učitavanje datoteka u svoju aplikaciju: pohrana, ograničenja i sigurnost

Da biste dodali učitavanje datoteka aplikaciji, pohranite datoteke u objektnu pohranu (bucket), a ne na disk poslužitelja niti u bazu podataka, i spremite malen zapis u bazu s ključem datoteke, nazivom, veličinom, vrstom i vlasnikom. Na poslužitelju provjerite veličinu i vrstu datoteke, unaprijed odlučite jesu li datoteke javne (poput fotografija proizvoda) ili privatne (poput računa), a privatne datoteke služite tek nakon provjere tko traži. U AI graditelju aplikacija funkciju učitavanja možete opisati jednim promptom; ključno je testirati da datoteke prežive ponovno postavljanje i da ih ne mogu otvoriti pogrešne osobe.

Odlučite kakva vam učitavanja trebaju

Prije izrade odgovorite na tri pitanja:

  1. Koje datoteke? Profilne fotografije, slike proizvoda, PDF-ovi, tablice, zvuk, video. To određuje ograničenja vrste i veličine.
  2. Tko ih smije vidjeti? Svi (javna galerija) ili samo učitavatelj i administratori (ugovori, osobni dokumenti, datoteke klijenata).
  3. Što se događa nakon učitavanja? Samo se sprema, prikazuje pregled, mijenja veličina slika ili čitaju sadržaj.

Javne slike i privatni dokumenti traže različite postavke, pa to prvo riješite.

Gdje datoteke trebaju biti

OpcijaKako radiDobro zaNa što paziti
Objektna pohrana (bucket)Datoteke su u usluzi napravljenoj za njih; baza sprema ključ ili URLGotovo svaku aplikacijuPravila pristupa moraju biti ispravno postavljena
Pohrana koju pruža platformaVaš graditelj aplikacija ili hosting omogućuje bucket za vasAplikacije izgrađene na toj platformiOgraničenja i cijene slijede platformu
Disk poslužiteljaDatoteke se pišu na datotečni sustav poslužitelja aplikacijeSamo lokalni razvojČesto se brišu pri ponovnom pokretanju ili postavljanju
U bazi podatakaBajtovi datoteke pohranjeni u tabliciGotovo nikadaNadima bazu, usporava sigurnosne kopije
Widget za učitavanje treće straneHostirana usluga za učitavanje vodi cijeli tokTeški mediji, transformacije slikaJoš jedan dobavljač, račun i račun za platiti

Za većinu aplikacija pravi je odgovor objektna pohrana plus zapis u bazi. Redak u bazi je ono što aplikacija upituje („prikaži dokumente ovog korisnika“); bucket samo drži bajtove.

Javne i privatne datoteke

  • Javne datoteke (fotografije proizvoda, slike s bloga, avatari) mogu se služiti s javnog URL-a. Svatko s poveznicom ih može otvoriti, što je za takav sadržaj u redu.
  • Privatne datoteke (računi, ugovori, medicinski ili identifikacijski dokumenti, dokumenti klijenata) ne smiju imati URL koji se može pogoditi. Poslužitelj provjerava je li prijavljeni korisnik vlasnik datoteke ili ima dopuštenje, zatim je ili šalje natrag ili vraća potpisanu poveznicu (signed URL): poveznicu koja vrijedi samo kratko.

Čest i ozbiljan propust je da su privatne datoteke pohranjene u javnom bucketu s predvidivim nazivima. Tko pogodi /uploads/invoice-102.pdf dobije tuđi račun.

Primjeri promptova

Učitavanje javnih slika:

Neka administratori učitaju do 5 fotografija proizvoda po proizvodu. Prihvaćaj JPG, PNG i WebP do 5 MB po datoteci. Spremi datoteke u pohranu datoteka, spremi ključ, veličinu i redoslijed svake datoteke u tablicu product_images i prikaži sličice s gumbom za uklanjanje. Provjeri vrstu i veličinu na poslužitelju, ne samo u pregledniku.

Učitavanje privatnih dokumenata:

Dodaj stranicu Dokumenti za prijavljene klijente. Klijenti mogu učitati PDF-ove do 20 MB. Datoteke su privatne: spremi ih u pohranu datoteka, a u tablicu documents spremi ID vlasnika, izvorni naziv datoteke, veličinu i vrijeme učitavanja. Preuzimanje smiju samo vlasnik i administratori. Preuzimanja idu kroz rutu na poslužitelju koja provjerava dopuštenje. Nikada ne izlažite javni URL za ove datoteke.

Korisni nastavci:

Prikaži traku napretka tijekom učitavanja i jasnu grešku ako je datoteka prevelika ili pogrešne vrste.

Kada se redak dokumenta obriše, obriši i pohranjenu datoteku.

Korak po korak

  1. Odredite vrste i ograničenja veličine za svako polje za učitavanje. Budite konkretni: „PDF do 20 MB“, a ne „dokumenti“.
  2. Omogućite pohranu. U AI graditelju zatražite učitavanja i on će je postaviti; drugdje napravite bucket i dodajte njegove vjerodajnice kao tajne vrijednosti na poslužitelju.
  3. Napravite tablicu u bazi za zapise datoteka: ID, vlasnik, ključ pohrane, izvorni naziv, vrsta, veličina, vrijeme nastanka.
  4. Izgradite rutu za učitavanje na poslužitelju: provjerite je li korisnik prijavljen, provjerite vrstu i veličinu, generirajte siguran ključ pohrane (ne korisnikov naziv datoteke), spremite datoteku, umetnite zapis.
  5. Izgradite put za preuzimanje ili prikaz: javni URL za javne datoteke; ruta s provjerom dopuštenja ili potpisana poveznica za privatne.
  6. Izgradite sučelje: birač datoteka, povlačenje i ispuštanje ako je korisno, napredak, pregledi, greške.
  7. Obradite brisanje tako da uklanjanje zapisa ukloni i pohranjenu datoteku.
  8. Testirajte: učitajte, ponovno učitajte stranicu, ponovno postavite ili objavite i provjerite da se datoteka još uvijek učitava. Zatim se prijavite kao drugi korisnik i pokušajte otvoriti privatnu datoteku prvog korisnika.

Česte greške

  • Pisanje učitavanja na disk servera. Radi u razvoju, zatim datoteke nestanu nakon ponovnog pokretanja ili postavljanja.
  • Oslanjanje na provjere u pregledniku. Atribut „accept“ na ulazu za datoteke je savjet, a ne sigurnost. Provjerite vrstu i veličinu na poslužitelju.
  • Korištenje korisnikova naziva datoteke kao ključa pohrane. Nazivi se sudaraju i mogu sadržavati čudne znakove. Generirajte jedinstveni ključ, a izvorni naziv spremite zasebno.
  • Javni bucketi za privatne datoteke. Vidi gore; ovo je greška koja dospije u vijesti.
  • Dopuštanje bilo koje vrste datoteke. HTML ili SVG datoteke služene s vaše domene mogu u nekim postavkama pokretati skripte. Prihvaćajte samo vrste koje trebate.
  • Bez ograničenja veličine. Jedno ogromno učitavanje može potrošiti vašu pohranu ili isteći zahtjev zbog vremenskog ograničenja.
  • Siročad datoteke. Brisanje retka u bazi bez brisanja datoteke polako puni pohranu za koju plaćate.
  • Zaboravljen mobitel. Fotografije s telefona mogu biti velike i u formatima poput HEIC; odlučite hoćete li ih prihvatiti ili pretvoriti.

Kontrolni popis

  • Datoteke idu u objektnu pohranu, a ne na disk servera ili u bazu
  • Svaka datoteka ima zapis u bazi s vlasnikom, ključem, nazivom, vrstom i veličinom
  • Vrsta i veličina provjeravaju se na poslužitelju
  • Ključevi pohrane se generiraju, a ne preuzimaju iz naziva datoteke
  • Privatne datoteke služe se tek nakon provjere dopuštenja
  • Drugi korisnik ne može otvoriti vaše privatne datoteke, čak ni s poveznicom
  • Brisanje zapisa briše i datoteku
  • Datoteke se i dalje učitavaju nakon objave ili ponovnog postavljanja
  • Greške pri učitavanju jasno su prikazane, uključujući na telefonu

Učitavanje datoteka u Mythexu

Mythex može automatski omogućiti pohranu datoteka za projekt kada vaša aplikacija treba učitavanja, pa ne morate ručno stvarati bucket. Možete i upisati /storage u chat. Dostupna je u paketima Free i Pro, uz ograničenje od 1 GB u paketu Free, a njezin status vidite pod Settings → Storage.

Dokumentacija je jasna da objavljeni hosting nije trajan lokalni datotečni sustav, pa od agenta zatražite platformsku pohranu, a ne spremanje na disk. Pohranjene datoteke i preuzimanja plaćaju se s vašeg stanja kredita, prema veličini i prema tome koliko se preuzima; Pro plaća pola stope paketa Free. Pogledajte Pohrana datoteka u dokumentaciji.

Učitavanja obično idu uz bazu podataka za zapise datoteka i prijavu za privatne datoteke. Ako gradite mjesto na kojem klijenti razmjenjuju dokumente, pogledajte kako izraditi klijentski portal, a prije lansiranja prođite kroz sigurnosni kontrolni popis.

Pitanja

Gdje bi učitane datoteke trebale biti pohranjene?

U objektnoj pohrani (usluga napravljena za datoteke, često se naziva bucket), a ne na disku poslužitelja aplikacije niti u bazi podataka. U svojoj bazi pohranjujte samo ključ ili URL datoteke, plus podatke poput naziva, veličine i vlasnika.

Zašto mi učitane datoteke nestaju nakon objave ili ponovnog postavljanja?

Većina hosting platformi nema trajan lokalni disk: kada se aplikacija ponovno pokrene ili postavi, datoteke zapisane na njezin disk se gube. Spremajte učitavanja u objektnu pohranu.

Kako datoteke učitane korisnicima držati privatnima?

Nemojte ih učiniti javno čitljivima. Neka poslužitelj provjeri da je prijavljeni korisnik smije vidjeti, pa mu datoteku pošalje ili vrati kratkotrajnu potpisanu poveznicu.

Podržava li Mythex učitavanje datoteka?

Da. Mythex može omogućiti pohranu datoteka za projekt kada aplikacija treba učitavanja, u paketima Free i Pro, uz ograničenje od 1 GB u paketu Free. Tražite funkciju učitavanja od agenta ili upišite /storage.

Mythex · Pricing · Izradite bilo što uz AI · Predlošci za web stranice i aplikacije · Mythex u usporedbi · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी 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 தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)