Vodiči

Kako dodati upload fajlova u vašu aplikaciju: skladište, limiti i sigurnost

Da biste dodali upload fajlova u aplikaciju, čuvajte fajlove u skladištu objekata (bucket-u), a ne na disku servera niti u bazi podataka, i u bazi čuvajte mali zapis s ključem fajla, imenom, veličinom, tipom i vlasnikom. Provjerite veličinu i tip fajla na serveru, unaprijed odlučite da li su fajlovi javni (kao fotografije proizvoda) ili privatni (kao fakture), a privatne fajlove služite tek nakon provjere ko traži. U AI alatu za izradu, funkciju uploada možete opisati jednim promptom; važan dio je testiranje da fajlovi prežive ponovni deploy i da ih ne može otvoriti pogrešna osoba.

Odlučite kakve uploade trebate

Prije izrade odgovorite na tri pitanja:

  1. Koji fajlovi? Profilne slike, slike proizvoda, PDF-ovi, tabele, audio, video. To određuje ograničenja tipa i veličine.
  2. Ko ih može vidjeti? Svi (javna galerija) ili samo onaj ko je otpremio i administratori (ugovori, lična dokumenta, fajlovi klijenata).
  3. Šta se dešava nakon uploada? Samo se čuva, prikazuje se pregled, mijenja se veličina slika ili se čita sadržaj.

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

Gdje fajlovi treba da žive

OpcijaKako radiDobro zaPazite na
Skladište objekata (bucket)Fajlovi u servisu napravljenom za njih; baza čuva ključ ili URLSkoro svaku aplikacijuPravila pristupa moraju biti ispravno postavljena
Skladište koje obezbjeđuje platformaVaš alat za izradu ili hosting omogućava bucket za vasAplikacije napravljene na toj platformiLimiti i cijene prate platformu
Disk serveraFajlovi pisani na fajl sistem servera aplikacijeSamo lokalni razvojČesto se brišu pri ponovnom pokretanju ili deployu
U bazi podatakaBajtovi fajla čuvaju se u tabeliGotovo nikadaNaduvava bazu, usporava sigurnosne kopije
Widget za upload treće straneHostovani uploader servis vodi cijeli tokTežak medij, transformacije slikaJoš jedan dobavljač, nalog i račun

Za većinu aplikacija, skladište objekata plus zapis u bazi je ispravan odgovor. Red u bazi je ono što aplikacija pretražuje ("pokaži dokumente ovog korisnika"); bucket samo čuva bajtove.

Javni naspram privatnih fajlova

  • Javni fajlovi (fotografije proizvoda, slike s bloga, avatari) mogu se služiti s javnog URL-a. Svako ko ima link može ih otvoriti, što je u redu za ovakav sadržaj.
  • Privatni fajlovi (fakture, ugovori, medicinski ili lični dokumenti, rezultati rada za klijente) nikada ne smiju imati URL koji se može pogoditi. Server provjerava da prijavljeni korisnik posjeduje fajl ili ima dozvolu, pa ga ili prenosi ili vraća potpisani URL: link koji radi samo kratko vrijeme.

Česta i ozbiljna greška je privatni fajlovi u javnom bucket-u s predvidljivim imenima. Ko pogodi /uploads/invoice-102.pdf, dobija tuđu fakturu.

Primjeri promptova

Upload javne slike:

Neka administratori otpremaju do 5 fotografija proizvoda po proizvodu. Prihvati JPG, PNG i WebP do 5 MB po fajlu. Sačuvaj fajlove u skladištu fajlova, u tabelu product_images upiši ključ, veličinu i redoslijed svakog fajla, i prikaži sličice s dugmetom za uklanjanje. Provjeri tip i veličinu na serveru, a ne samo u pregledniku.

Upload privatnog dokumenta:

Dodaj stranicu Dokumenti za prijavljene klijente. Klijenti mogu otpremiti PDF-ove do 20 MB. Fajlovi su privatni: čuvaj ih u skladištu fajlova, u tabelu documents upiši ID vlasnika, originalno ime fajla, veličinu i vrijeme uploada, a preuzimanje dozvoli samo vlasniku i administratorima. Preuzimanje ide preko rute na serveru koja provjerava dozvolu. Nikada ne izlaži javni URL za ove fajlove.

Korisni nastavci:

Prikaži traku napretka tokom uploada i jasnu grešku ako je fajl prevelik ili pogrešnog tipa.

Kada se red dokumenta obriše, obriši i sačuvani fajl.

Korak po korak

  1. Odredite tipove i limite veličine za svako polje za upload. Budite konkretni: "PDF do 20 MB", a ne "dokumenti".
  2. Uključite skladište. U AI alatu za izradu zatražite uploade i on će ga postaviti; drugdje, napravite bucket i dodajte njegove akreditive kao tajne na serveru.
  3. Napravite tabelu u bazi za zapise o fajlovima: ID, vlasnik, ključ u skladištu, originalno ime, tip, veličina, vrijeme kreiranja.
  4. Napravite rutu za upload na serveru: provjerite da je korisnik prijavljen, provjerite tip i veličinu, generišite siguran ključ u skladištu (ne korisničko ime fajla), sačuvajte fajl, upišite zapis.
  5. Napravite putanju za preuzimanje ili prikaz: javni URL za javne fajlove; ruta s provjerom dozvole ili potpisani URL za privatne.
  6. Napravite korisnički interfejs: birač fajla, prevlačenje ako je korisno, napredak, pregledi, greške.
  7. Obradite brisanje tako da uklanjanje zapisa obriše i sačuvani fajl.
  8. Testirajte: otpremite, osvježite, ponovo deploy-ujte ili objavite i provjerite da se fajl i dalje učitava. Zatim se prijavite kao drugi korisnik i pokušajte da otvorite privatni fajl prvog korisnika.

Česte greške

  • Pisanje uploada na disk servera. Radi u razvoju, a zatim fajlovi nestanu nakon ponovnog pokretanja ili deploya.
  • Oslanjanje na provjere u pregledniku. Atribut "accept" na polju za fajl je savjet, a ne sigurnost. Provjerite tip i veličinu na serveru.
  • Korištenje korisničkog imena fajla kao ključa u skladištu. Imena se sudaraju i mogu sadržavati čudne znakove. Generišite jedinstveni ključ, a originalno ime čuvajte posebno.
  • Javni bucketi za privatne fajlove. Pogledajte gore; ovo je greška koja dospije u vijesti.
  • Dozvoljavanje bilo kojeg tipa fajla. HTML ili SVG fajlovi služeni s vašeg domena mogu u nekim postavkama pokrenuti skripte. Prihvatajte samo tipove koji su vam potrebni.
  • Nema limita veličine. Jedan ogroman upload može pojesti vaš prostor ili isteći vrijeme zahtjeva.
  • Siročad fajlovi. Brisanje reda u bazi bez brisanja fajla polako puni skladište za koje plaćate.
  • Zaboravljen mobilni. Fotografije s telefona mogu biti velike i u formatima kao što je HEIC; odlučite da li ih prihvatate ili konvertujete.

Kontrolna lista

  • Fajlovi idu u skladište objekata, a ne na disk servera niti u bazu
  • Svaki fajl ima zapis u bazi s vlasnikom, ključem, imenom, tipom i veličinom
  • Tip i veličina se provjeravaju na serveru
  • Ključevi u skladištu su generisani, a ne uzeti iz imena fajla
  • Privatni fajlovi se služe tek nakon provjere dozvole
  • Drugi korisnik ne može otvoriti vaše privatne fajlove, čak ni s linkom
  • Brisanje zapisa briše i fajl
  • Fajlovi se i dalje učitavaju nakon objavljivanja ili ponovnog deploya
  • Greške pri uploadu se jasno prikazuju, uključujući na telefonu

Upload fajlova u Mythexu

Mythex može automatski omogućiti skladište fajlova za projekat kada vaša aplikacija treba uploade, pa ne morate ručno obezbjeđivati bucket. Možete i upisati /storage u chat. Dostupno je u planovima Free i Pro, uz limit od 1 GB u planu Free, a status možete vidjeti pod Settings → Storage.

Dokumentacija jasno kaže da objavljeni hosting nije trajan lokalni fajl sistem, pa od agenta zatražite platformsko skladište, a ne čuvanje na disku. Sačuvani fajlovi i preuzimanja se plaćaju iz vašeg kredit salda, po veličini i po tome koliko se preuzima; Pro plaća upola manju cijenu od plana Free. Pogledajte File storage u dokumentaciji.

Upload obično ide uz bazu podataka za zapise o fajlovima i prijavu za privatne fajlove. Ako pravite mjesto na kojem klijenti razmjenjuju dokumente, pogledajte kako napraviti klijentski portal, a prije lansiranja prođite kroz sigurnosnu listu za aplikacije pravljene AI-jem.

Pitanja

Gdje treba čuvati otpremljene fajlove?

U skladištu objekata (servis napravljen za fajlove, često se zove bucket), a ne na disku servera aplikacije i ne unutar baze podataka. U svojoj bazi čuvajte samo ključ ili URL fajla, plus detalje kao što su ime, veličina i vlasnik.

Zašto mi otpremljeni fajlovi nestanu nakon objavljivanja ili ponovnog deploya?

Većina hosting platformi nema trajan lokalni disk: kada se aplikacija ponovo pokrene ili ponovo deploy-uje, fajlovi zapisani na njen disk se gube. Čuvajte otpreme u skladištu objekata.

Kako da fajlovi ostanu privatni?

Nemojte ih činiti javno čitljivim. Neka server provjeri da li prijavljeni korisnik smije da vidi fajl, pa mu ga pošalje ili vrati kratkotrajni potpisani link.

Da li Mythex podržava upload fajlova?

Da. Mythex može omogućiti skladište fajlova za projekat kada aplikaciji trebaju uploadi, u planovima Free i Pro, uz limit od 1 GB u planu Free. Zatražite funkciju uploada od agenta ili upišite /storage.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা 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 தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)