Útmutatók

Hogyan adj fájlfeltöltést az appodhoz: tárhely, korlátok és biztonság

Fájlfeltöltés hozzáadásához a fájlokat objektumtárolóban (bucketben) tárold, nem a szervered lemezén és nem az adatbázisban, az adatbázisban pedig egy kis rekordot mentsd a fájl kulcsával, nevével, méretével, típusával és tulajdonosával. A fájl méretét és típusát a szerveren ellenőrizd, előre döntsd el, hogy a fájlok nyilvánosak (mint a termékfotók) vagy privátok (mint a számlák), és a privát fájlokat csak akkor szolgáld ki, miután ellenőriztél, ki kéri. AI-alkalmazásépítőben a feltöltési funkciót egyetlen prompttal leírhatod; a lényeg az, hogy teszteld: a fájlok túlélik-e az újratelepítést, és nem nyithatja-e meg őket a nem jogosult személy.

Döntsd el, milyen feltöltésekre van szükséged

Építés előtt válaszolj három kérdésre:

  1. Milyen fájlok? Profilfotók, termékképek, PDF-ek, táblázatok, hang, videó. Ez határozza meg a típus- és méretkorlátokat.
  2. Ki láthatja őket? Mindenki (nyilvános galéria), vagy csak a feltöltő és az adminok (szerződések, személyazonosító-dokumentumok, ügyfélfájlok).
  3. Mi történik a feltöltés után? Csak tárolás, előnézet megjelenítése, képek átméretezése vagy a tartalom olvasása.

A nyilvános képek és a privát dokumentumok eltérő beállítást igényelnek, ezért ezt tisztázd először.

Hol legyenek a fájlok

LehetőségHogyan működikMire jóMire figyelj
Objektumtároló (bucket)Fájlok egy erre épített szolgáltatásban; az adatbázis kulcsot vagy URL-t tárolSzinte minden appA hozzáférési szabályokat helyesen kell beállítani
Platform által biztosított tárhelyAz alkalmazásépítő vagy a tárhely egy bucketet kapcsol be nekedAz adott platformon épített appokA limitek és az árazás a platformot követik
Szerver lemezeFájlok az app szerverének fájlrendszerére íródnakCsak helyi fejlesztésÚjraindításkor vagy újratelepítéskor gyakran törlődik
Az adatbázisbanA fájlbájtok egy táblában tárolvaSzinte sohaFelduzzasztja az adatbázist, lassítja a mentéseket
Harmadik féltől származó feltöltő widgetEgy hosztolt feltöltőszolgáltatás kezeli a teljes folyamatotNagy médiatartalom, képtranszformációkÚjabb szolgáltató, fiók és számla

Legtöbb appnál az objektumtároló plusz egy adatbázis-rekord a helyes válasz. Az adatbázis sora az, amit az app lekérdez („ennek a felhasználónak a dokumentumai”); a bucket csak a bájtokat tartja.

Nyilvános vs. privát fájlok

  • Nyilvános fájlok (termékfotók, blogképek, avatárok) nyilvános URL-ről szolgálhatók. Bárki, akinek megvan a link, megnyithatja őket, ami az ilyen tartalomnál rendben van.
  • Privát fájlok (számlák, szerződések, orvosi vagy személyazonosító-dokumentumok, ügyfélteljesítmények) soha nem kaphatnak kitalálható nyilvános URL-t. A szerver ellenőrzi, hogy a bejelentkezett felhasználó tulajdonosa-e a fájlnak vagy jogosult rá, majd vagy kiküldi a fájlt, vagy egy aláírt URL-t ad vissza: egy rövid ideig működő linket.

Gyakori és súlyos hiba, amikor a privát fájlok előre kitalálható nevekkel egy nyilvános bucketben vannak. Aki kitalálja az /uploads/invoice-102.pdf útvonalat, valaki más számláját kapja meg.

Példa promptok

Nyilvános képfeltöltés:

Engedd az adminoknak, hogy termékenként legfeljebb 5 termékfotót töltsenek fel. Fogadj el JPG, PNG és WebP fájlokat, fájlonként legfeljebb 5 MB-ig. A fájlokat fájltárolóban tárold, a fájl kulcsát, méretét és sorrendjét mentsd egy product_images táblába, és mutass bélyegképeket eltávolító gombbal. A típust és a méretet a szerveren ellenőrizd, ne csak a böngészőben.

Privát dokumentumfeltöltés:

Adj egy Dokumentumok oldalt a bejelentkezett ügyfeleknek. Az ügyfelek legfeljebb 20 MB-os PDF-eket tölthetnek fel. A fájlok privátok: fájltárolóban tárold őket, a tulajdonos azonosítóját, az eredeti fájlnevet, a méretet és a feltöltési időt mentsd egy documents táblába, és csak a tulajdonos és az adminok tölthessék le őket. A letöltés egy szerveri útvonalon menjen át, amely ellenőrzi a jogosultságot. Ezekhez a fájlokhoz soha ne adj nyilvános URL-t.

Hasznos kiegészítések:

Mutass folyamatjelzőt a feltöltés alatt, és világos hibaüzenetet, ha a fájl túl nagy vagy rossz típusú.

Amikor egy dokumentum-sor törlődik, a tárolt fájlt is törölje.

Lépésről lépésre

  1. Válassz típusokat és méretkorlátokat minden feltöltési mezőhöz. Legyél konkrét: „PDF legfeljebb 20 MB”, ne „dokumentumok”.
  2. Kapcsold be a tárolást. AI-építőben kérd a feltöltést, és ő beállítja a tárolót; máshol hozz létre egy bucketet, és add hozzá a hitelesítő adatait szerveroldali titokként.
  3. Hozz létre egy adatbázis-táblát a fájlrekordoknak: azonosító, tulajdonos, tárolókulcs, eredeti név, típus, méret, létrehozási idő.
  4. Építsd meg a feltöltési útvonalat a szerveren: ellenőrizd, hogy a felhasználó be van-e jelentkezve, a típust és a méretet, generálj biztonságos tárolókulcsot (nem a felhasználó fájlnevét), mentsd a fájlt, szúrd be a rekordot.
  5. Építsd meg a letöltési vagy megjelenítési utat: nyilvános URL a nyilvános fájloknak; jogosultság-ellenőrzött útvonal vagy aláírt URL a privátoknak.
  6. Építsd meg a felületet: fájlválasztó, ha hasznos drag and drop, folyamat, előnézetek, hibák.
  7. Kezeld a törlést, hogy a rekord eltávolítása a tárolt fájlt is eltávolítsa.
  8. Teszteld: tölts fel, töltsd újra az oldalt, telepíts újra vagy publikálj, és ellenőrizd, hogy a fájl még betöltődik. Majd jelentkezz be egy másik felhasználóként, és próbáld megnyitni az első felhasználó privát fájlját.

Gyakori hibák

  • Feltöltések írása a szerver lemezére. Fejlesztésben működik, aztán a fájlok eltűnnek újraindításkor vagy újratelepítéskor.
  • A böngésző ellenőrzéseinek megbízása. A fájlbevitel „accept” beállítása tipp, nem biztonság. A típust és a méretet a szerveren ellenőrizd.
  • A felhasználó fájlnevének használata tárolókulcsként. A nevek ütköznek, és furcsa karakterek lehetnek bennük. Generálj egyedi kulcsot, az eredeti nevet pedig külön tárold.
  • Nyilvános bucketek privát fájlokhoz. Lásd fent; ez az, ami újságcikket csinál.
  • Bármilyen fájltípus engedélyezése. A HTML- vagy SVG-fájlok, amelyeket a saját domainedről szolgálsz ki, bizonyos beállításoknál szkripteket futtathatnak. Csak a szükséges típusokat fogadd el.
  • Méretkorlát hiánya. Egy óriási feltöltés felemésztheti a tárhelykeretet, vagy időtúllépést okozhat.
  • Árva fájlok. Az adatbázis-sor törlése a fájl törlése nélkül lassan megtölti a fizetett tárhelyet.
  • A mobil elfelejtése. A telefonos fotók nagyok lehetnek, és olyan formátumban, mint a HEIC; döntsd el, elfogadod-e vagy konvertálod őket.

Ellenőrzőlista

  • A fájlok objektumtárolóba kerülnek, nem a szerver lemezére vagy az adatbázisba
  • Minden fájlnak van adatbázis-rekordja tulajdonossal, kulccsal, névvel, típussal és mérettel
  • A típus és a méret a szerveren van ellenőrizve
  • A tárolókulcsok generáltak, nem a fájlnévből származnak
  • A privát fájlok csak jogosultság-ellenőrzés után szolgálhatók ki
  • Egy másik felhasználó nem nyithatja meg a privát fájljaidat, még a linkkel sem
  • Rekord törlése törli a fájlt is
  • A fájlok publikálás vagy újratelepítés után is betöltődnek
  • A feltöltési hibák világosan megjelennek, telefonon is

Fájlfeltöltés a Mythexben

A Mythex automatikusan be tudja kapcsolni a fájltárolást egy projekthez, amikor az appnak feltöltésre van szüksége, így nem kell kézzel bucketet kiépíteni. A chatbe beírhatod a /storage parancsot is. A Free és a Pro csomagban elérhető, a Free csomagon 1 GB-os limittel, állapotát pedig a Beállítások → Tárhely alatt látod.

A dokumentáció egyértelmű, hogy a publikált tárhely nem tartós helyi fájlrendszer, ezért kérd az ügynöktől a platformtárhely használatát a lemezre mentés helyett. A tárolt fájlokat és a letöltéseket a kreditegyenlegedből fizeted, méret és letöltött mennyiség szerint; a Pro a Free díj felét fizeti. Lásd: Fájltárolás a dokumentációban.

A feltöltések általában együtt járnak egy adatbázissal a fájlrekordokhoz és a bejelentkezéssel a privát fájlokhoz. Ha olyan helyet építenél, ahol ügyfelek dokumentumokat cserélnek, lásd: hogyan építs ügyfélportált, és indulás előtt menj végig a biztonsági ellenőrzőlistán.

Kérdések

Hol kell tárolni a feltöltött fájlokat?

Objektumtárolóban (olyan szolgáltatásban, amelyet fájlokhoz építettek, gyakran „bucketnek” hívják), nem az app szerverének lemezén és nem az adatbázisban. Az adatbázisban csak a fájl kulcsát vagy URL-jét tárold, plusz olyan adatokat, mint a név, a méret és a tulajdonos.

Miért tűnnek el a feltöltött fájlaim publikálás vagy újratelepítés után?

A legtöbb tárhelyszolgáltató nem tart fenn tartós helyi lemezt: amikor az app újraindul vagy újratelepül, a lemezére írt fájlok elvesznek. Ehelyett a feltöltéseket objektumtárolóba mentsd.

Hogyan tartom privátan a feltöltött fájlokat?

Ne tedd a fájlokat nyilvánosan olvashatóvá. A szervered ellenőrizze, hogy a bejelentkezett felhasználó jogosult-e a fájl megtekintésére, majd küldje el a fájlt, vagy adjon vissza egy rövid életű aláírt linket hozzá.

Támogatja a Mythex a fájlfeltöltést?

Igen. A Mythex be tudja kapcsolni a fájltárolást egy projekthez, ha az app feltöltést igényel, a Free és a Pro csomagban egyaránt, a Free csomagon 1 GB-os limittel. Az ügynöktől kérd a feltöltési funkciót, vagy írd be a /storage parancsot.

Mythex · Pricing · Építs bármit AI-val · Weboldal- és alkalmazássablonok · A Mythex összehasonlítva · AI-alapú alkalmazásépítési szószedet · Ingyenes eszközök AI-alapú alkalmazásépítéshez · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Հայերեն 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 简体中文 繁體中文(香港) 繁體中文(台灣)