Juhendid

Kuidas lisada oma rakendusse failide üleslaadimine: salvestus, piirangud ja turvalisus

Failide üleslaadimise lisamiseks rakendusse salvesta failid objektisalvestusse (bucketisse), mitte serveri kettale ega andmebaasi, ning salvesta andmebaasi väike kirje, kus on faili võti, nimi, suurus, tüüp ja omanik. Kontrolli faili suurust ja tüüpi serveris, otsusta juba alguses, kas failid on avalikud (nagu tootefotod) või privaatsed (nagu arved), ja paku privaatseid faile ainult pärast seda, kui oled kontrollinud, kes küsib. AI-rakenduste ehitajas saab üleslaadimise funktsiooni kirjeldada ühe promptiga; oluline on test, et failid püsivad uuesti juurutamisel ja et valesti inimene neid avada ei saa.

Otsusta, millist tüüpi üleslaadimisi vajad

Enne ehitamist vasta kolmele küsimusele:

  1. Millised failid? Profiilipildid, tootepildid, PDF-id, tabelid, heli, video. See määrab tüübi ja suuruse piirangud.
  2. Kes neid näha tohib? Kõik (avalik galerii) või ainult üleslaadija ja administraatorid (lepingud, isikut tõendavad dokumendid, kliendifailid).
  3. Mis juhtub pärast üleslaadimist? Lihtsalt salvestamine, eelvaate kuvamine, piltide suuruse muutmine või sisu lugemine.

Avalikud pildid ja privaatsed dokumendid vajavad erinevat seadistust, seega otsusta see esimesena.

Kus failid peaksid asuma

ValikKuidas see töötabSobibMillele tähelepanu pöörata
Objektisalvestus (bucket)Failid on salvestatud teenusesse, mis on selleks loodud; andmebaas hoiab võtit või URL-iPeaaegu iga rakendusLigipääsureeglid tuleb õigesti seada
Platvormi pakutav salvestusSinu rakenduse ehitaja või hostiteenus lubab bucketi sinu eestRakendused, mis on ehitatud selle platvormi pealPiirangud ja hinnastus järgivad platvormi
Serveri ketasFailid kirjutatakse rakendusserveri failisüsteemiAinult kohalik arendusSageli kustub taaskäivitusel või uuesti juurutamisel
AndmebaasisFailibaidid salvestatud tabelissePeaaegu mitte kunagiPaisutab andmebaasi, aeglustab varukoopiaid
Kolmanda osapoole üleslaadimisvidinHostitud üleslaadija teenus käsitleb kogu vooRasked meediafailid, pildi teisendusedVeel üks pakkuja, konto ja arve

Enamiku rakenduste jaoks on õige vastus objektisalvestus ja andmebaasi kirje. Andmebaasi rida on see, mida sinu rakendus päringuga otsib („näita selle kasutaja dokumente“); bucket hoiab ainult baite.

Avalikud ja privaatsed failid

  • Avalikud failid (tootefotod, blogi pildid, avatarid) saab serveerida avalikust URL-ist. Igaüks lingiga saab neid avada, mis sellise sisu puhul on korras.
  • Privaatsed failid (arved, lepingud, meditsiinilised või isikut tõendavad dokumendid, kliendile tehtud tööd) ei tohi kunagi olla ennustatava avaliku URL-iga. Server kontrollib, et sisselogitud kasutaja on faili omanik või tal on luba, ning seejärel kas voogedastab faili või tagastab allkirjastatud URL-i: lingi, mis töötab vaid lühikest aega.

Levinud ja tõsine viga on privaatsed failid avalikus bucketis ettearvatavate nimedega. Keegi, kes arvab /uploads/invoice-102.pdf välja, saab kellegi teise arve.

Näidispromptid

Avaliku pildi üleslaadimine:

Lase administraatoritel laadida üles kuni 5 tootefotot tootekohta. Luba JPG, PNG ja WebP kuni 5 MB igaüks. Salvesta failid failisalvestusse, salvesta iga faili võti, suurus ja järjekord tabelisse product_images ning näita pisipilte nupuga eemaldamiseks. Valideeri tüüp ja suurus serveris, mitte ainult brauseris.

Privaatse dokumendi üleslaadimine:

Lisa sisselogitud klientidele Dokumentide leht. Kliendid saavad laadida üles PDF-e kuni 20 MB. Failid on privaatsed: salvesta need failisalvestusse, salvesta omaniku ID, algne failinimi, suurus ja üleslaadimise aeg tabelisse documents ning lase alla laadida ainult omanikul ja administraatoritel. Allalaadimine käib serveriteekonna kaudu, mis kontrollib õigusi. Nende failide jaoks ära kunagi paku avalikku URL-i.

Kasulikud järelpäringud:

Näita üleslaadimise ajal edenemisriba ja selge veateade, kui fail on liiga suur või vale tüüpi.

Kui dokumendi rida kustutatakse, kustuta ka salvestatud fail.

Samm-sammult

  1. Vali tüübid ja suuruse piirangud igale üleslaadimisväljale. Ole konkreetne: „PDF kuni 20 MB“, mitte „dokumendid“.
  2. Lülita salvestus sisse. AI-ehitajas küsi üleslaadimist vestluses, ning ta seadistab salvestuse; mujal loo bucket ja lisa selle andmed serveri saladustena.
  3. Loo andmebaasi tabel failikirjete jaoks: ID, omanik, salvestusvõti, algne nimi, tüüp, suurus, loomise aeg.
  4. Ehita üleslaadimise teekond serveris: kontrolli, et kasutaja on sisse logitud, kontrolli tüüpi ja suurust, genereeri turvaline salvestusvõti (mitte kasutaja failinimi), salvesta fail ja lisa kirje.
  5. Ehita allalaadimise või kuvamise tee: avalik URL avalikele failidele; õigusi kontrollivad teekond või allkirjastatud URL privaatsetele.
  6. Ehita kasutajaliides: failivalija, lohistamine kui vaja, edenemine, eelvaated, veateated.
  7. Käsitle kustutamisi, nii et kirje eemaldamine eemaldab ka salvestatud faili.
  8. Testi: laadi üles, laadi leht uuesti, juuruta või avalda uuesti ja kontrolli, et fail ikka avaneb. Seejärel logi sisse teise kasutajana ja proovi avada esimese kasutaja privaatne fail.

Levinud vead

  • Üleslaadimiste kirjutamine serveri kettale. See töötab arenduses, kuid pärast taaskäivitust või uuesti juurutamist failid kaovad.
  • Brauseri kontrollide usaldamine. Failisisendi „accept“ seade on vihje, mitte turvalisus. Kontrolli tüüpi ja suurust serveris.
  • Kasutaja failinime kasutamine salvestusvõtmena. Nimed põrkuvad ja võivad sisaldada kummalisi märke. Genereeri unikaalne võti ja salvesta algne nimi eraldi.
  • Avalikud bucketid privaatsete failide jaoks. Vt ülalt; see on see viga, millest uudised räägivad.
  • Mis tahes failitüübi lubamine. HTML- või SVG-failid, mida serveeritakse sinu domeenilt, võivad mõnes seadistuses käivitada skripte. Võta vastu ainult vajalikke tüüpe.
  • Suuruspiirangu puudumine. Üks suur üleslaadimine võib kasutada ära sinu salvestusmahu või tuua päringu ajalõpu.
  • Kasutud failid. Andmebaasi rea kustutamine ilma failita täidab aeglaselt salvestusruumi, mille eest maksad.
  • Mobiili unustamine. Telefonifotod võivad olla suured ja formaadis nagu HEIC; otsusta, kas neid vastu võtta või teisendada.

Kontrollnimekiri

  • Failid lähevad objektisalvestusse, mitte serveri kettale ega andmebaasi
  • Igal failil on andmebaasi kirje omaniku, võtme, nime, tüübi ja suurusega
  • Tüüp ja suurus on serveris kontrollitud
  • Salvestusvõtmed on genereeritud, mitte võetud failinimest
  • Privaatseid faile serveeritakse ainult pärast õiguste kontrolli
  • Teine kasutaja ei saa sinu privaatseid faile avada isegi lingiga
  • Kirje kustutamine kustutab ka faili
  • Failid laaduvad endiselt pärast avaldamist või uuesti juurutamist
  • Üleslaadimise vead kuvatakse selgelt, sh telefonis

Failide üleslaadimine Mythexis

Mythex saab projekti jaoks automaatselt lubada failisalvestuse, kui sinu rakendus vajab üleslaadimisi, nii et bucketit ei pea käsitsi seadistama. Samuti saad vestluses kirjutada /storage. See on saadaval nii tasuta kui ka Pro paketis, tasuta paketis on 1 GB piirang, ja staatust näed jaotisest Settings → Storage.

Dokumentatsioon ütleb selgelt, et avaldatud hostimine ei ole püsiv kohalik failisüsteem, seega palu agendil kasutada platvormi salvestust, mitte kettale salvestamist. Salvestatud failid ja allalaadimised arvestatakse krediitidest, suuruse ja allalaadimiste mahu järgi; Pro maksab poole tasuta paketi hinnast. Vt failisalvestus dokumentatsioonis.

Üleslaadimised käivad tavaliselt käsikäes andmebaasiga failikirjete jaoks ja sisselogimisega privaatsete failide jaoks. Kui ehitad kohta, kus kliendid vahetavad dokumente, vt kuidas ehitada kliendiportaali ja käi enne väljalaskmist läbi turvakontrollnimekiri.

Küsimused

Kuhu üleslaaditud failid peaksid jääma?

Objektisalvestusse (teenus, mis on loodud failide hoidmiseks ja mida nimetatakse sageli bucketiks), mitte rakendusserveri kettale ega andmebaasi sisse. Sinu andmebaasi salvesta ainult faili võti või URL ning sellised andmed nagu nimi, suurus ja omanik.

Miks mu üleslaaditud failid kaovad pärast avaldamist või uuesti juurutamist?

Enamikul hostimisplatvormidel pole püsivat kohalikku ketast: kui rakendus taaskäivitub või uuesti juurutatakse, kaovad kettale kirjutatud failid. Salvesta üleslaadimised selle asemel objektisalvestusse.

Kuidas hoida üleslaaditud faile privaatsena?

Ära tee faile avalikult loetavaks. Lase serveril kontrollida, et sisselogitud kasutajal on lubatud fail näha, ja seejärel saada fail või tagasta lühiajaline allkirjastatud link.

Kas Mythex toetab failide üleslaadimist?

Jah. Mythex võib projektile lubada failisalvestuse, kui rakendus vajab üleslaadimisi, nii tasuta kui ka Pro paketis, tasuta paketis 1 GB piiranguga. Küsi agendilt üleslaadimise funktsiooni või kirjuta /storage.

Mythex · Pricing · Ehita kõike AI-ga · Veebilehtede ja rakenduste mallid · Mythex võrdluses · Tehisintellektiga rakenduste ehitamise sõnastik · Tasuta tööriistad tehisintellektiga rakenduste ehitamiseks · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) فارسی 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 简体中文 繁體中文(香港) 繁體中文(台灣)