Vodiči

Kako dodati otpremanje fajlova aplikaciji: skladište, limiti i bezbednost

Da biste dodali otpremanje fajlova aplikaciji, čuvajte fajlove u skladištu objekata (bucket-u), a ne na disku servera ili u bazi, i u bazi sačuvajte mali zapis sa ključem fajla, nazivom, veličinom, tipom i vlasnikom. Proverite veličinu i tip fajla na serveru, unapred odlučite da li su fajlovi javni (kao fotografije proizvoda) ili privatni (kao računi), i privatne fajlove služite tek nakon što proverite ko traži. U AI alatu za izradu aplikacija funkciju otpremanja možete opisati jednim promptom; važno je testirati da fajlovi opstaju nakon ponovnog postavljanja i da ih ne može da otvori pogrešna osoba.

Odlučite kakvo otpremanje vam treba

Pre izrade odgovorite na tri pitanja:

  1. Koji fajlovi? Profilne fotografije, slike proizvoda, PDF-ovi, tabele, audio, video. Ovo određuje limite tipa i veličine.
  2. Ko ih sme videti? Svi (javna galerija) ili samo otpremilac i administratori (ugovori, lična dokumenta, fajlovi klijenata).
  3. Šta se dešava nakon otpremanja? Samo se čuvaju, prikazuje se pregled, slike se menjaju veličinu ili se čita njihov sadržaj.

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

Gde fajlovi treba da žive

OpcijaKako radiDobro zaNa šta paziti
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 obezbeđuje platformaVaš alat za izradu ili hosting uključuje bucket za vasAplikacije izgrađene na toj platformiLimiti i cene prate platformu
Disk serveraFajlovi se pišu na fajl sistem servera aplikacijeSamo lokalni razvojČesto se brišu pri ponovnom pokretanju ili postavljanju
U baziBajtovi fajla se čuvaju u tabeliSkoro nikadNaduvava bazu, usporava rezervne kopije
Vidžet za otpremanje treće straneHostovana usluga vodi ceo tokTeški mediji, transformacije slikaJoš jedan dobavljač, nalog i račun

Za većinu aplikacija najbolje je skladište objekata plus zapis u bazi. Red u bazi je ono što aplikacija upituje ("prikaži dokumente ovog korisnika"); bucket samo čuva bajtove.

Javni naspram privatnih fajlova

  • Javni fajlovi (fotografije proizvoda, slike blogova, avatari) mogu se služiti sa javnog URL-a. Svako ko ima link može da ih otvori, što je u redu za ovakav sadržaj.
  • Privatni fajlovi (računi, ugovori, medicinska ili lična dokumenta, isporučevine klijentima) nikad ne smeju imati javni URL koji se može pogoditi. Server proverava da prijavljeni korisnik poseduje fajl ili ima dozvolu, pa ga ili prenosi nazad ili vraća potpisani URL: link koji radi samo kratko vreme.

Čest i ozbiljan bag jeste privatni fajlovi u javnom bucket-u sa predvidivim nazivima. Ko pogodi /uploads/invoice-102.pdf dobija tuđi račun.

Primeri promptova

Javno otpremanje slika:

Dozvoli administratorima da otpreme do 5 fotografija proizvoda po proizvodu. Prihvataj JPG, PNG i WebP do 5 MB svaka. Čuvaj fajlove u skladištu fajlova, a u tabeli product_images čuvaj ključ, veličinu i redosled svakog fajla, i prikaži sličice sa dugmetom za uklanjanje. Proveri tip i veličinu na serveru, ne samo u pregledaču.

Otpremanje privatnog dokumenta:

Dodaj stranicu Dokumenti za prijavljene klijente. Klijenti mogu da otpreme PDF-ove do 20 MB. Fajlovi su privatni: čuvaj ih u skladištu fajlova, a u tabeli documents čuvaj ID vlasnika, originalni naziv fajla, veličinu i vreme otpremanja. Preuzimanje ide preko serverske rute koja proverava dozvolu. Nikad ne izlažite javni URL za ove fajlove.

Korisni dodaci:

Prikaži traku napretka tokom otpremanja 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 otpremanje. Budite konkretni: "PDF do 20 MB", a ne "dokumenti".
  2. Uključite skladište. U AI alatu za izradu zatražite otpremanje i on će podesiti skladište; drugde napravite bucket i dodajte njegove podatke za pristup kao tajne vrednosti na serveru.
  3. Napravite tabelu u bazi za zapise o fajlovima: ID, vlasnik, ključ skladišta, originalni naziv, tip, veličina, vreme kreiranja.
  4. Napravite rutu za otpremanje na serveru: proverite da je korisnik prijavljen, proverite tip i veličinu, generišite bezbedan ključ skladišta (ne korisnikov naziv fajla), sačuvajte fajl i ubacite zapis.
  5. Napravite put za preuzimanje ili prikaz: javni URL za javne fajlove; ruta sa proverom dozvole ili potpisani URL za privatne.
  6. Napravite korisnički interfejs: birač fajla, prevlačenje ako je korisno, napredak, pregled, greške.
  7. Obradite brisanje tako da uklanjanje zapisa ukloni i sačuvani fajl.
  8. Testirajte: otpremite, osvežite, ponovo postavite ili objavite, i proverite 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 otpremanja na disk servera. Radi u razvoju, a zatim fajlovi nestanu nakon ponovnog pokretanja ili postavljanja.
  • Oslanjanje na provere u pregledaču. Atribut "accept" na polju za fajl je savet, a ne bezbednost. Proveravajte tip i veličinu na serveru.
  • Korišćenje korisnikovog naziva fajla kao ključa skladišta. Nazivi se sudaraju i mogu imati čudne znakove. Generišite jedinstven ključ, a originalni naziv čuvajte odvojeno.
  • Javni buckets za privatne fajlove. Vidi gore; ovo je greška koja dospe u vesti.
  • Dozvoljavanje bilo kog tipa fajla. HTML ili SVG fajlovi služeni sa vašeg domena mogu da pokrenu skripte u nekim postavkama. Prihvatajte samo tipove koji su vam potrebni.
  • Nema limita veličine. Jedno ogromno otpremanje može da pojede vaš prostor ili izazove prekoračenje vremena zahteva.
  • Siroti fajlovi. Brisanje reda u bazi, ali ne i fajla, polako puni skladište za koje plaćate.
  • Zaboravljen telefon. Fotografije sa telefona mogu biti velike i u formatima poput HEIC; odlučite da li ih prihvatate ili konvertujete.

Lista za proveru

  • Fajlovi idu u skladište objekata, a ne na disk servera ili u bazu
  • Svaki fajl ima zapis u bazi sa vlasnikom, ključem, nazivom, tipom i veličinom
  • Tip i veličina se proveravaju na serveru
  • Ključevi skladišta su generisani, a ne uzeti iz naziva fajla
  • Privatni fajlovi se služe tek nakon provere dozvole
  • Drugi korisnik ne može da otvori vaše privatne fajlove, čak ni sa linkom
  • Brisanje zapisa briše i fajl
  • Fajlovi se i dalje učitavaju nakon objavljivanja ili ponovnog postavljanja
  • Greške pri otpremanju se jasno prikazuju, uključujući na telefonu

Otpremanje fajlova u Mythexu

Mythex može automatski da omogući skladište fajlova za projekat kada vaša aplikacija zatraži otpremanje, pa ne morate ručno da postavljate bucket. Možete i ukucati /storage u chatu. Dostupno je u planovima Free i Pro, sa limitom od 1 GB u planu Free, a status možete videti 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 plaćaju se sa vašeg stanja kredita, po veličini i po količini preuzimanja; Pro plaća upola manju cenu od Free. Pogledajte Skladište fajlova u dokumentaciji.

Otpremanja obično idu uz bazu podataka za zapise o fajlovima i prijavu za privatne fajlove. Ako pravite mesto na kome klijenti razmenjuju dokumente, pogledajte kako napraviti klijentski portal, a pre lansiranja prođite kroz bezbednosnu listu za aplikacije pravljene uz AI.

Pitanja

Gde treba čuvati otpremljene fajlove?

U skladištu objekata (servis napravljen za fajlove, često nazvan bucket), a ne na disku servera aplikacije i ne unutar baze. U bazi čuvajte samo ključ ili URL fajla, plus podatke poput naziva, veličine i vlasnika.

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

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

Kako da privatni fajlovi ostanu privatni?

Ne čitajte ih javno. Neka vaš server proveri da prijavljeni korisnik sme da vidi fajl, pa mu ga pošalje ili vrati kratkotrajni potpisani link.

Da li Mythex podržava otpremanje fajlova?

Da. Mythex može da omogući skladište fajlova za projekat kada aplikaciji zatreba otpremanje, u planovima Free i Pro, uz limit od 1 GB u planu Free. Zatražite od agenta funkciju otpremanja ili ukucajte /storage.

Mythex · Pricing · Pravite bilo šta uz AI · Šabloni za sajtove i aplikacije · Mythex u poređenju · Rečnik pojmova za pravljenje aplikacija uz AI · Besplatni alati za pravljenje aplikacija uz 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 Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)