Průvodci

Jak přidat nahrávání souborů do aplikace: úložiště, limity a zabezpečení

Soubory do aplikace nahrajete tak, že je uložíte do objektového úložiště (bucketu), ne na disk svého serveru ani do databáze, a do databáze uložíte malý záznam s klíčem souboru, názvem, velikostí, typem a vlastníkem. Velikost a typ souboru kontrolujte na serveru, dopředu rozhodněte, zda jsou soubory veřejné (například fotky produktů), nebo soukromé (například faktury), a soukromé soubory servírujte až po ověření, kdo se ptá. V AI nástroji pro tvorbu aplikací můžete funkci nahrávání popsat jedním promptem; podstatné je otestovat, že soubory přežijí nové nasazení a že je nemůže otevřít špatný člověk.

Rozhodněte, jaké nahrávání potřebujete

Před stavěním odpovězte na tři otázky:

  1. Jaké soubory? Profilové fotky, obrázky produktů, PDF, tabulky, audio, video. To určuje typ a limity velikosti.
  2. Kdo je smí vidět? Kdokoli (veřejná galerie), nebo jen nahrávající uživatel a administrátoři (smlouvy, doklady totožnosti, klientské soubory).
  3. Co se stane po nahrání? Jen se uloží, zobrazí se náhled, obrázky se zmenší, nebo se čte jejich obsah.

Veřejné obrázky a soukromé dokumenty potřebují jiné nastavení, proto to vyřešte jako první.

Kde mají soubory být

MožnostJak fungujeVhodné proNa co si dát pozor
Objektové úložiště (bucket)Soubory jsou uložené ve službě postavené pro ně; databáze ukládá klíč nebo URLTéměř každou aplikaciPravidla přístupu musí být nastavena správně
Úložiště poskytnuté platformouVáš AI nástroj nebo hosting vám bucket zapneAplikace postavené na dané platforměLimity a ceny se řídí platformou
Disk serveruSoubory zapsané do souborového systému serveru aplikaceJen lokální vývojČasto se smažou při restartu nebo novém nasazení
V databáziBajty souborů uložené v tabulceTéměř nikdyNafukuje databázi, zpomaluje zálohy
Nástroj pro nahrávání třetí stranyHostovaná služba zvládne celý proces nahráváníTěžká média, transformace obrázkůDalší dodavatel, účet a faktura

Pro většinu aplikací je správná odpověď objektové úložiště plus záznam v databázi. Řádek v databázi je to, na co se aplikace dotazuje („ukaž dokumenty tohoto uživatele“); bucket jen drží samotné bajty.

Veřejné a soukromé soubory

  • Veřejné soubory (fotky produktů, obrázky z blogu, avatary) lze servírovat z veřejné URL. Kdokoli s odkazem je může otevřít, což je u tohoto typu obsahu v pořádku.
  • Soukromé soubory (faktury, smlouvy, zdravotní nebo identifikační dokumenty, výstupy pro klienty) nesmí mít uhodnutelnou veřejnou URL. Server ověří, že přihlášený uživatel soubor vlastní nebo k němu má oprávnění, a pak ho buď po částech pošle, nebo vrátí podepsanou URL: odkaz, který funguje jen krátce.

Častou a vážnou chybou jsou soukromé soubory uložené ve veřejném bucketu s předvídatelnými názvy. Kdo uhodne /uploads/invoice-102.pdf, dostane cizí fakturu.

Příklady promptů

Nahrání veřejného obrázku:

Nech administrátory nahrát až 5 fotek produktu na jeden produkt. Přijímej JPG, PNG a WebP do 5 MB každý. Ukládej soubory do úložiště, u každého ulož klíč, velikost a pořadí do tabulky product_images a zobraz miniatury s tlačítkem pro odstranění. Typ a velikost ověřuj na serveru, ne jen v prohlížeči.

Nahrání soukromého dokumentu:

Přidej stránku Dokumenty pro přihlášené klienty. Klienti mohou nahrát PDF do 20 MB. Soubory jsou soukromé: ulož je do úložiště a do tabulky documents ulož ID vlastníka, původní název souboru, velikost a čas nahrání. Stáhnout je smí jen vlastník a administrátoři. Stahování jde přes serverovou trasu, která kontroluje oprávnění. Nikdy nevystavuj veřejnou URL pro tyto soubory.

Užitečná doplnění:

Během nahrávání zobraz ukazatel průběhu a při příliš velkém nebo špatném typu souboru jasnou chybu.

Když se smaže řádek dokumentu, smaž i uložený soubor.

Postup krok za krokem

  1. Určete typy a limity velikosti pro každé pole nahrávání. Buďte konkrétní: „PDF do 20 MB“, ne „dokumenty“.
  2. Zapněte úložiště. V AI nástroji o nahrávání požádejte a ten úložiště nastaví; jinde vytvořte bucket a jeho přihlašovací údaje uložte jako tajné údaje na serveru.
  3. Vytvořte tabulku v databázi pro záznamy souborů: ID, vlastník, klíč v úložišti, původní název, typ, velikost, čas vytvoření.
  4. Postavte serverovou trasu pro nahrání: ověřte, že je uživatel přihlášen, zkontrolujte typ a velikost, vygenerujte bezpečný klíč v úložišti (ne uživatelův název souboru), soubor uložte a vložte záznam.
  5. Postavte cestu pro stahování nebo zobrazení: veřejná URL pro veřejné soubory; trasa s kontrolou oprávnění nebo podepsaná URL pro soukromé.
  6. Postavte rozhraní: výběr souboru, případně přetažení, průběh, náhledy, chyby.
  7. Zajistěte mazání, aby odstranění záznamu odstranilo i uložený soubor.
  8. Otestujte: nahrajte, obnovte stránku, znovu nasaďte nebo publikujte a ověřte, že se soubor pořád načte. Pak se přihlaste jako jiný uživatel a zkuste otevřít soukromý soubor prvního uživatele.

Časté chyby

  • Zapisování nahrávek na disk serveru. Funguje ve vývoji, pak soubory po restartu nebo novém nasazení zmizí.
  • Důvěra kontrolám v prohlížeči. Atribut „accept“ u vstupu pro soubor je nápověda, ne zabezpečení. Typ a velikost kontrolujte na serveru.
  • Použití názvu souboru od uživatele jako klíče v úložišti. Názvy se srážejí a mohou obsahovat divné znaky. Generujte jedinečný klíč a původní název ukládejte zvlášť.
  • Veřejné buckety pro soukromé soubory. Viz výše; tohle se dostává do zpráv.
  • Povolení jakéhokoli typu souboru. HTML nebo SVG servírované z vaší domény mohou v některých nastaveních spouštět skripty. Přijímejte jen typy, které potřebujete.
  • Žádný limit velikosti. Jedno obří nahrání vyčerpá vaši kapacitu úložiště nebo způsobí vypršení požadavku.
  • Osiřelé soubory. Smazání řádku v databázi bez souboru pomalu zaplní úložiště, za které platíte.
  • Zapomenutý mobil. Fotky z telefonů bývají velké a v formátech jako HEIC; rozhodněte, zda je přijmout, nebo převést.

Kontrolní seznam

  • Soubory jdou do objektového úložiště, ne na disk serveru ani do databáze
  • Každý soubor má záznam v databázi s vlastníkem, klíčem, názvem, typem a velikostí
  • Typ a velikost jsou kontrolovány na serveru
  • Klíče v úložišti jsou generované, ne převzaté z názvu souboru
  • Soukromé soubory se servírují až po kontrole oprávnění
  • Jiný uživatel nemůže otevřít vaše soukromé soubory, ani když má odkaz
  • Smazání záznamu smaže i soubor
  • Soubory se po publikování nebo novém nasazení stále načítají
  • Chyby nahrávání se zobrazují jasně, i na telefonu

Nahrávání souborů v Mythexu

Mythex může pro projekt automaticky zapnout úložiště souborů, když vaše aplikace potřebuje nahrávání, takže bucket nemusíte nastavovat ručně. Můžete také v chatu napsat /storage. Je dostupné ve plánech Free i Pro, s limitem 1 GB u plánu Free, a jeho stav uvidíte v Nastavení → Úložiště.

Dokumentace jasně uvádí, že publikovaný hosting není trvalý lokální souborový systém, takže agenta požádejte, aby použil úložiště platformy, a neukládal na disk. Uložené soubory a stahování se platí z kreditového zůstatku podle velikosti a podle toho, kolik se stáhne; plán Pro platí polovinu sazby Free. Viz Úložiště souborů v dokumentaci.

Nahrávání obvykle jde ruku v ruce s databází pro záznamy souborů a s přihlášením pro soukromé soubory. Pokud stavíte místo, kde si klienti vyměňují dokumenty, podívejte se na jak postavit klientský portál a před spuštěním projděte bezpečnostní checklist.

Otázky

Kde by se měly nahrané soubory ukládat?

V objektovém úložišti (služba postavená pro soubory, často nazývaná bucket), ne na disku serveru aplikace a ne uvnitř databáze. Do databáze ukládejte jen klíč nebo URL souboru a doplňující údaje, jako jsou název, velikost a vlastník.

Proč mi nahrané soubory po publikování nebo novém nasazení zmizí?

Většina hostingových platforem nemá trvalý lokální disk: když se aplikace restartuje nebo znovu nasadí, soubory zapsané na její disk se ztratí. Ukládejte nahrávky do objektového úložiště.

Jak udržet nahrané soubory v soukromí?

Nepřistupujte k nim jako k veřejně čitelným. Server ověří, že přihlášený uživatel smí soubor vidět, a pak ho pošle nebo vrátí krátkodobě platný podepsaný odkaz.

Podporuje Mythex nahrávání souborů?

Ano. Mythex může pro projekt zapnout úložiště souborů, pokud aplikace potřebuje nahrávání, a to ve plánech Free i Pro, s limitem 1 GB u plánu Free. O funkci nahrávání požádáte agenta nebo napíšete /storage.

Mythex · Pricing · Vytvořte cokoli s AI · Šablony webů a aplikací · Mythex v porovnání · Slovník tvorby aplikací s AI · Bezplatné nástroje pro tvorbu aplikací s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català 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 简体中文 繁體中文(香港) 繁體中文(台灣)