Hvernig á að bæta skráaupphleðslu við appið þitt: geymsla, takmörk og öryggi
Til að bæta skráaupphleðslu við appið þitt geymirðu skrárnar í hlutageymslu (fötu), ekki á diski þjónsins né í gagnagrunninum, og vistar lítið skráningarfærslu í gagnagrunninum með lyklinum, heitinu, stærðinni, gerðinni og eigandanum. Athugaðu stærð og gerð skráar á þjóninum, ákveddu fyrirfram hvort skrár eru opinberar (eins og vöruljósmyndir) eða einkamál (eins og reikningar), og þjónaðu einkaskrám aðeins eftir að hafa athugað hver er að biðja um þær. Í gervigreindarsmíðatóli geturðu lýst upphleðslueiginleikanum í einni fyrirmælum; mikilvægi hlutinn er að prófa að skrárnar lifi af endurdreifingu og að ekki sé hægt að opna þær fyrir rangan aðila.
Ákveddu hvers konar upphleðslur þú þarft
Áður en þú smíðar skaltu svara þremur spurningum:
- Hvaða skrár? Prófílmyndir, vöruljósmyndir, PDF-skjöl, töflureikna, hljóð, myndskeið. Það ákvarðar gerðar- og stærðartakmörk.
- Hver má sjá þær? Allir (opið myndasafn) eða aðeins sá sem hlóð upp og stjórnendur (samningar, persónuskilríki, skjöl viðskiptavina).
- Hvað gerist eftir upphleðslu? Bara geyma hana, sýna forskoðun, minnka myndir, eða lesa innihaldið.
Opinberar myndir og einkaskjöl þurfa mismunandi uppsetningu, svo ákveddu þetta fyrst.
Hvar skrárnar eiga að vera
| Valkostur | Hvernig hann virkar | Hentar fyrir | Varast |
|---|---|---|---|
| Hlutageymsla (fata) | Skrár geymdar í þjónustu sem er gerð fyrir þær; gagnagrunnurinn geymir lykil eða slóð | Næstum öll öpp | Aðgangsreglur verða að vera réttar |
| Geymsla frá vettvangi | Smíðatólið eða hýsingin virkjar fötu fyrir þig | Öpp smíðuð á þeim vettvangi | Mörk og verðlagning fylgja vettvanginum |
| Diskur netþjóns | Skrár skrifaðar á skráakerfi appþjónsins | Aðeins staðbundin þróun | Oft þurrkað við endurræsingu eða endurdreifingu |
| Í gagnagrunninum | Skráargögn geymd í töflu | Nánast aldrei | Þenur gagnagrunninn út, hægir á afritum |
| Upphleðslugræja frá þriðja aðila | Hýstur upphleðslumaður sér um allt ferlið | Þungt myndefni, myndbreytingar | Annar söluaðili, aðgangur og reikningur |
Fyrir flest öpp er hlutageymsla ásamt færslu í gagnagrunni rétta svarið. Gagnagrunnsfærslan er það sem appið þitt fyrirspyr („sýna skjöl þessa notanda“); fatan geymir bara gögnin.
Opinberar og einkaskrár
- Opinberar skrár (vöruljósmyndir, bloggmyndir, prófílmyndir) má þjóna af opinberri slóð. Hver sem hefur hlekkinn getur opnað þær, sem er í lagi fyrir þessa tegund efnis.
- Einkaskrár (reikningar, samningar, læknis- eða persónuskilríkisskjöl, skil til viðskiptavina) mega aldrei hafa fyrirsjáanlega opinbera slóð. Þjónninn athugar að innskráði notandinn eigi skrána eða hafi heimild, og skilar henni síðan annað hvort í gegnum straum eða með undirritaðri slóð: hlekk sem virkar aðeins í stuttan tíma.
Algeng og alvarleg villa er að einkaskrár séu geymdar í opinberri fötu með fyrirsjáanlegum heitum. Hver sem giskar á /uploads/invoice-102.pdf fær reikning einhvers annars.
Dæmi um fyrirmæli
Opinber myndupphleðsla:
Leyfðu stjórnendum að hlaða upp allt að 5 vöruljósmyndum á hverja vöru. Taktu við JPG, PNG og WebP allt að 5 MB hver. Geymdu skrárnar í skráageymslu, vistaðu lykil, stærð og röð hverrar skráar í töfluna product_images, og sýndu smámyndir með fjarlægingarhnappi. Staðfestu gerð og stærð á þjóninum, ekki aðeins í vafranum.
Upphleðsla einkaskjals:
Bættu við Skjalasíðu fyrir innskráða viðskiptavini. Viðskiptavinir geta hlaðið upp PDF-skjölum allt að 20 MB. Skrárnar eru einkamál: geymdu þær í skráageymslu, vistaðu eigenda-auðkenni, upprunalegt skráarheiti, stærð og upphleðslutíma í töfluna documents, og leyfðu aðeins eigandanum og stjórnendum að hlaða þeim niður. Niðurhal fer í gegnum þjónsleið sem athugar heimildir. Birtu aldrei opinbera slóð fyrir þessar skrár.
Gagnlegar framhaldsfyrirmæli:
Sýndu framvindustiku meðan á upphleðslu stendur og skýra villu ef skráin er of stór eða af röngri gerð.
Þegar skjalafærsla er eytt skaltu eyða geymdu skránni líka.
Skref fyrir skref
- Ákveddu gerðir og stærðarmörk fyrir hvern upphleðslureit. Vertu nákvæm: „PDF allt að 20 MB“, ekki „skjöl“.
- Virkjaðu geymslu. Í gervigreindarsmíðatóli biður þú um upphleðslur og það setur geymsluna upp; annars staðar býrðu til fötu og setur aðgangsupplýsingar hennar sem leyndarmál á þjóninum.
- Búðu til gagnagrunnstöflu fyrir skráafærslur: auðkenni, eigandi, geymslulykill, upprunalegt heiti, gerð, stærð, sköpunartími.
- Smíðaðu upphleðsluleiðina á þjóninum: athugaðu að notandinn sé innskráður, athugaðu gerð og stærð, búðu til öruggan geymslulykil (ekki skráarheiti notandans), vistaðu skrána og settu inn færsluna.
- Smíðaðu niðurhals- eða birtingarleiðina: opinber slóð fyrir opinberar skrár; leið með heimildarathugun eða undirritaða slóð fyrir einkaskrár.
- Smíðaðu viðmótið: skráaval, dra-og-slepptu ef það hentar, framvinda, forskoðanir, villur.
- Meðhöndlaðu eyðingar svo það að fjarlægja færslu fjarlægi líka geymdu skrána.
- Prófaðu: hlaða upp, endurhlaða, endurdreifa eða birta, og athuga að skráin hleðst enn. Skráðu þig svo inn sem annar notandi og reyndu að opna einkaskrá fyrsta notandans.
Algeng mistök
- Að skrifa upphleðslur á disk þjónsins. Það virkar í þróun, en skrárnar hverfa eftir endurræsingu eða endurdreifingu.
- Að treysta athugunum vafrans. „accept“-stillingin á skráareitnum er vísbending, ekki öryggi. Athugaðu gerð og stærð á þjóninum.
- Að nota skráarheiti notandans sem geymslulykil. Heiti rekast saman og geta innihaldið undarlega stafi. Búðu til einstakan lykil og geymdu upprunalega heitið sér.
- Opinberar fötur fyrir einkaskrár. Sjá að ofan; þetta er sú villa sem kemst í fréttirnar.
- Að leyfa hvaða skráargerð sem er. HTML- eða SVG-skrár sem þjónað er frá léninu þínu geta keyrt skriftur í sumum uppsetningum. Taktu aðeins við þeim gerðum sem þú þarft.
- Engin stærðarmörk. Ein risastór upphleðsla getur étið geymslukvótann þinn eða valdið tímamörkum á beiðninni.
- Munaðarlausar skrár. Að eyða gagnagrunnsfærslunni en ekki skránni fyllir hægt upp geymslu sem þú borgar fyrir.
- Gleymd farsímar. Myndir úr síma geta verið stórar og í sniðum eins og HEIC; ákveddu hvort þú tekur við þeim eða breytir þeim.
Gátlisti
- Skrár fara í hlutageymslu, ekki á disk þjónsins eða í gagnagrunninn
- Hver skrá hefur færslu í gagnagrunni með eiganda, lykli, heiti, gerð og stærð
- Gerð og stærð eru athuguð á þjóninum
- Geymslulyklar eru búnir til, ekki teknir úr skráarheitinu
- Einkaskrár eru aðeins þjónaðar eftir heimildarathugun
- Annar notandi getur ekki opnað einkaskrárnar þínar, jafnvel með hlekknum
- Eyðing færslu eyðir skránni
- Skrár hlaðast enn eftir birtingu eða endurdreifingu
- Villur við upphleðslu birtast greinilega, líka í síma
Skráaupphleðsla í Mythex
Mythex getur virkjað skráageymslu fyrir verkefni sjálfkrafa þegar appið þitt þarf upphleðslur, svo þú þurfir ekki að setja upp fötu handvirkt. Þú getur líka skrifað /storage í spjallið. Hún er í boði á Free og Pro, með 1 GB hámarki á Free, og þú getur séð stöðu hennar undir Settings → Storage.
Skjölin taka skýrt fram að birt hýsing er ekki varanlegt staðbundið skráakerfi, svo biddu gervigreindarmanninn um að nota geymslu vettvangsins í stað þess að vista á disk. Geymdar skrár og niðurhöl eru greidd af inneignarstöðunni þinni, eftir stærð og því hversu mikið er sótt; Pro greiðir helming Free-gjaldsins. Sjá Skráageymsla í skjölunum.
Upphleðslur fylgja oft gagnagrunni fyrir skráafærslurnar og innskráningu fyrir einkaskrár. Ef þú ert að smíða stað þar sem viðskiptavinir skiptast á skjölum, sjá hvernig á að smíða viðskiptavinagátt, og farðu yfir öryggisgátlistann fyrir opnun.
Spurningar
Hvar eiga upphlaðnar skrár að vera geymdar?
Í hlutageymslu (object storage), þjónustu sem er gerð fyrir skrár og er oft kölluð fata (bucket), en ekki á diski netþjóns appsins og ekki inni í gagnagrunninum. Geymdu aðeins lykil skrárinnar eða slóð, ásamt upplýsingum eins og heiti, stærð og eiganda, í gagnagrunninum þínum.
Af hverju hverfa upphlaðnu skrárnar mínar eftir birtingu eða endurdreifingu?
Flestir hýsingarvettvangar halda ekki varanlegum staðbundnum diski: þegar appið endurræsist eða er endurdreift tapast skrár sem voru skrifaðar á diskinn. Vistaðu upphleðslur í hlutageymslu í staðinn.
Hvernig held ég upphlöðnum skrám einkamálum?
Ekki gera skrárnar opinberlega lesanlegar. Láttu þjóninn athuga að innskráði notandinn megi sjá skrána, og sendu hana síðan eða skilaðu skammlífri undirritaðri slóð (signed link) að henni.
Styður Mythex skráaupphleðslu?
Já. Mythex getur virkjað skráageymslu fyrir verkefni þegar appið þarf upphleðslur, á Free og Pro, með 1 GB hámarki á Free. Þú biður gervigreindarmanninn um upphleðslueiginleikann eða skrifar /storage.