Guider

Slik legger du til filopplasting i appen din: lagring, grenser og sikkerhet

For å legge til filopplasting i appen din lagrer du filene i objektlagring (en bucket), ikke på serverens disk eller i databasen. Du lagrer en liten post i databasen med filens nøkkel, navn, størrelse, type og eier. Kontroller filstørrelse og type på serveren, bestem på forhånd om filer er offentlige (som produktbilder) eller private (som fakturaer), og server private filer først etter at du har sjekket hvem som spør. I et AI-verktøy for app-bygging kan du beskrive opplastingsfunksjonen i én prompt. Det viktige er å teste at filene overlever en ny deploy, og at ikke feil person kan åpne dem.

Bestem hva slags opplastinger du trenger

Før du bygger, svar på tre spørsmål:

  1. Hvilke filer? Profilbilder, produktbilder, PDF-er, regneark, lyd, video. Dette avgjør type- og størrelsesgrensene.
  2. Hvem kan se dem? Alle (et offentlig galleri) eller bare den som lastet opp og administratorer (kontrakter, ID-dokumenter, klientfiler).
  3. Hva skjer etter opplastingen? Bare lagre den, vise en forhåndsvisning, skalere bilder, eller lese innholdet.

Offentlige bilder og private dokumenter trenger ulike oppsett, så avklar dette først.

Hvor filene bør ligge

AlternativSlik fungerer detPasser tilSe opp for
Objektlagring (bucket)Filer lagres i en tjeneste laget for dem; databasen lagrer en nøkkel eller URLNesten alle apperTilgangsregler må settes riktig
Lagring fra plattformenAI-verktøyet eller hosten din aktiverer en bucket for degApper bygget på den plattformenGrenser og priser følger plattformen
ServerdiskFiler skrevet til app-serverens filsystemBare lokal utviklingSlettes ofte ved omstart eller ny deploy
I databasenFilinnhold lagret i en tabellNesten aldriGjør databasen oppblåst og sikkerhetskopiene trege
Tredjeparts opplastingswidgetEn hostet opplaster tar hele flytenTung media, bildetransformasjonerEnda en leverandør, konto og regning

For de fleste apper er objektlagring pluss en databasepost det riktige svaret. Databaseraden er det appen din spør etter («vis dette brukerens dokumenter»). Bucketen holder bare bytene.

Offentlige kontra private filer

  • Offentlige filer (produktbilder, blogg-bilder, avatarer) kan serveres fra en offentlig URL. Alle med lenken kan åpne dem, noe som er greit for denne typen innhold.
  • Private filer (fakturaer, kontrakter, medisinske eller ID-dokumenter, leveranser til klienter) må aldri ha en gjettbar offentlig URL. Serveren sjekker at innlogget bruker eier filen eller har tillatelse, og enten strømmer den tilbake eller returnerer en signert URL: en lenke som bare virker en kort stund.

En vanlig og alvorlig feil er private filer i en offentlig bucket med forutsigbare navn. Den som gjetter /uploads/invoice-102.pdf får en annens faktura.

Eksempelprompter

En offentlig bildeopplasting:

La administratorer laste opp opptil 5 produktbilder per produkt. Godta JPG, PNG og WebP på opptil 5 MB hver. Lagre filene i fillagring, lagre hver fils nøkkel, størrelse og rekkefølge i en tabell product_images, og vis miniatyrbilder med en fjernknapp. Valider type og størrelse på serveren, ikke bare i nettleseren.

En privat dokumentopplasting:

Legg til en Dokumenter-side for innloggede klienter. Klienter kan laste opp PDF-er på opptil 20 MB. Filene er private: lagre dem i fillagring, lagre eier-ID, opprinnelig filnavn, størrelse og opplastingstidspunkt i en tabell documents, og la bare eieren og administratorer laste dem ned. Nedlastinger går gjennom en serverrute som sjekker tillatelse. Eksponer aldri en offentlig URL for disse filene.

Nyttige oppfølgere:

Vis en fremdriftslinje under opplasting, og en tydelig feil hvis filen er for stor eller feil type.

Når en dokumentrad slettes, slett også den lagrede filen.

Steg for steg

  1. Velg typer og størrelsesgrenser for hvert opplastingsfelt. Vær spesifikk: «PDF opptil 20 MB», ikke «dokumenter».
  2. Aktiver lagring. I et AI-verktøy ber du om opplastinger i chatten, og det setter opp lagringen. Ellers oppretter du en bucket og legger til legitimasjonen som hemmeligheter på serveren.
  3. Lag en databasetabell for filpostene: ID, eier, lagringsnøkkel, opprinnelig navn, type, størrelse, opprettet-tidspunkt.
  4. Bygg opplastingsruten på serveren: sjekk at brukeren er innlogget, sjekk type og størrelse, generer en trygg lagringsnøkkel (ikke brukerens filnavn), lagre filen, og sett inn posten.
  5. Bygg nedlastings- eller visningsveien: offentlig URL for offentlige filer, en tillatelsessjekket rute eller signert URL for private.
  6. Bygg grensesnittet: filvelger, dra-og-slipp hvis nyttig, fremdrift, forhåndsvisninger og feilmeldinger.
  7. Håndter sletting slik at fjerning av en post også fjerner den lagrede filen.
  8. Test: last opp, last siden på nytt, publiser eller deploy på nytt, og sjekk at filen fortsatt laster. Logg deretter inn som en annen bruker og prøv å åpne den første brukerens private fil.

Vanlige feil

  • Å skrive opplastinger til serverens disk. Det fungerer i utvikling, og deretter forsvinner filene ved omstart eller ny deploy.
  • Å stole på nettleserens sjekker. «Accept»-innstillingen i en filvelger er et hint, ikke sikkerhet. Sjekk type og størrelse på serveren.
  • Å bruke brukerens filnavn som lagringsnøkkel. Navn kolliderer og kan inneholde rare tegn. Generer en unik nøkkel og lagre det opprinnelige navnet separat.
  • Offentlige buckets for private filer. Se over. Dette er den som havner i nyhetene.
  • Å tillate alle filtyper. HTML- eller SVG-filer servert fra domenet ditt kan kjøre skript i enkelte oppsett. Godta bare typene du trenger.
  • Ingen størrelsesgrense. Én stor opplasting kan spise opp lagringskvoten din eller gi tidsavbrudd på forespørselen.
  • Foreldreløse filer. Å slette databaseraden, men ikke filen, fyller gradvis lagring du betaler for.
  • Å glemme mobil. Bilder fra telefon kan være store og i formater som HEIC. Bestem om du skal godta eller konvertere dem.

Sjekkliste

  • Filer går til objektlagring, ikke serverdisken eller databasen
  • Hver fil har en databasepost med eier, nøkkel, navn, type og størrelse
  • Type og størrelse sjekkes på serveren
  • Lagringsnøkler genereres, hentes ikke fra filnavnet
  • Private filer serveres bare etter en tillatelsessjekk
  • En annen bruker kan ikke åpne dine private filer, selv med lenken
  • Sletting av en post sletter filen
  • Filene laster fortsatt etter publisering eller ny deploy
  • Opplastingsfeil vises tydelig, også på telefon

Filopplasting i Mythex

Mythex kan aktivere fillagring for et prosjekt automatisk når appen din trenger opplastinger, så du trenger ikke å sette opp en bucket for hånd. Du kan også skrive /storage i chatten. Det er tilgjengelig på Free og Pro, med en grense på 1 GB på Free, og du ser statusen under Innstillinger → Lagring.

Dokumentasjonen er tydelig på at publisert hosting ikke er et varig lokalt filsystem, så be agenten bruke plattformlagring i stedet for å lagre på disk. Lagrede filer og nedlastinger betales fra kredittsaldoen din, etter størrelse og hvor mye som lastes ned. Pro betaler halv Free-prisen. Se Fillagring i dokumentasjonen.

Opplastinger går ofte hånd i hånd med en database for filpostene og innlogging for private filer. Hvis du bygger et sted der klienter utveksler dokumenter, se hvordan bygge en klientportal, og gå gjennom sikkerhetssjekklisten før lansering.

Spørsmål

Hvor bør opplastede filer lagres?

I objektlagring (en tjeneste laget for filer, ofte kalt en bucket), ikke på serverens disk og ikke inne i databasen. Lagre bare filens nøkkel eller URL, samt detaljer som navn, størrelse og eier, i databasen din.

Hvorfor forsvinner filene mine etter at jeg publiserer eller deployer på nytt?

De fleste hostingplattformer har ikke en varig lokal disk. Når appen starter på nytt eller deployes på nytt, forsvinner filer som er skrevet til disken. Lagre opplastinger i objektlagring i stedet.

Hvordan holder jeg opplastede filer private?

Ikke gjør filene offentlig lesbare. La serveren din sjekke at den innloggede brukeren har lov til å se en fil, og send den eller returner en kortvarig signert lenke til den.

Støtter Mythex filopplasting?

Ja. Mythex kan aktivere fillagring for et prosjekt når appen trenger opplastinger, på Free og Pro, med en grense på 1 GB på Free. Du ber agenten om opplastingsfunksjonen eller skriver /storage.

Mythex · Pricing · Bygg hva som helst med KI · Maler for nettsider og apper · Mythex sammenlignet · Ordliste for app-bygging med KI · Gratis verktøy for app-bygging med KI · 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 မြန်မာ 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 简体中文 繁體中文(香港) 繁體中文(台灣)