Oppaat

Tiedostolähetysten lisääminen sovellukseesi: tallennus, rajat ja tietoturva

Tiedostolähetysten lisääminen sovellukseesi tarkoittaa, että tallennat tiedostot objektitallennukseen (bucketiin), et palvelimesi levylle tai tietokantaan, ja tallennat tietokantaan pienen tietueen, jossa on tiedoston avain, nimi, koko, tyyppi ja omistaja. Tarkista tiedoston koko ja tyyppi palvelimella, päätä heti, ovatko tiedostot julkisia (kuten tuotekuvat) vai yksityisiä (kuten laskut), ja tarjoa yksityisiä tiedostoja vasta, kun olet tarkistanut, kuka pyytää. Tekoälyavusteisessa sovelluskehittäjässä lähetysominaisuuden voi kuvata yhdellä kehotteella; tärkeintä on testata, että tiedostot säilyvät uudelleenjulkaisun yli eikä väärä henkilö pääse avaamaan niitä.

Päätä, minkälaisia lähetyksiä tarvitset

Ennen rakentamista vastaa kolmeen kysymykseen:

  1. Mitä tiedostoja? Profiilikuvia, tuotekuvia, PDF-tiedostoja, taulukoita, ääntä, videota. Tämä määrää tyyppi- ja kokorajat.
  2. Kuka ne saa nähdä? Kaikki (julkinen galleria) vai vain lähettäjä ja ylläpitäjät (sopimukset, henkilöllisyystodistukset, asiakastiedostot).
  3. Mitä tapahtuu lähetyksen jälkeen? Vain tallennus, esikatselu, kuvien koon muuttaminen vai sisällön lukeminen.

Julkiset kuvat ja yksityiset asiakirjat vaativat erilaiset ratkaisut, joten selvitä tämä ensin.

Missä tiedostojen kuuluu sijaita

VaihtoehtoMiten se toimiiHyvä käyttöönMihin kiinnittää huomiota
Objektitallennus (bucket)Tiedostot tallennetaan palveluun, joka on tehty niitä varten; tietokanta tallentaa avaimen tai URL:nLähes kaikki sovelluksetKäyttöoikeussäännöt on asetettava oikein
Alustan tarjoama tallennusSovelluskehittäjäsi tai hostisi ottaa bucketin käyttöön puolestasiSovellukset, jotka on rakennettu kyseisellä alustallaRajat ja hinnoittelu seuraavat alustaa
Palvelimen levyTiedostot kirjoitetaan sovelluspalvelimen tiedostojärjestelmäänVain paikallinen kehitysUsein tyhjennetään käynnistyksessä tai uudelleenjulkaisussa
TietokannassaTiedostojen tavut tallennetaan taulun sarakkeeseenLähes ei koskaanPaisuttaa tietokannan, hidastaa varmuuskopioita
Kolmannen osapuolen lähetyswidgetHostattu lähetyspalvelu hoitaa koko prosessinRaskas media, kuvamuunnoksetToinen toimittaja, tili ja lasku

Useimmille sovelluksille oikea vastaus on objektitallennus plus tietokantatietue. Tietokantarivi on se, jota sovelluksesi kyselee (”näytä tämän käyttäjän asiakirjat”); bucket vain säilyttää tavut.

Julkiset ja yksityiset tiedostot

  • Julkisia tiedostoja (tuotekuvat, blogikuvat, profiilikuvat) voidaan tarjota julkisesta URL-osoitteesta. Kuka tahansa linkin omistava voi avata ne, mikä on sopivaa tällaiselle sisällölle.
  • Yksityisiä tiedostoja (laskut, sopimukset, lääketieteelliset tai henkilöllisyysasiakirjat, asiakkaiden toimitukset) ei saa koskaan olla arvattavissa julkisessa URL-osoitteessa. Palvelin tarkistaa, että kirjautunut käyttäjä omistaa tiedoston tai on oikeutettu siihen, ja joko suoratoistaa sen takaisin tai palauttaa allekirjoitetun URL-osoitteen: linkin, joka toimii vain lyhyen aikaa.

Yleinen ja vakava virhe on yksityisten tiedostojen tallentaminen julkiseen bucketiin ennustettavilla nimillä. Kuka tahansa, joka arvaa polun /uploads/invoice-102.pdf, saa jonkun muun laskun.

Esimerkkikehotteita

Julkinen kuvalähetys:

Anna ylläpitäjien ladata enintään 5 tuotekuvaa tuotetta kohti. Hyväksy JPG, PNG ja WebP enintään 5 Mt kappaleelta. Tallenna tiedostot tiedostotallennukseen, tallenna kunkin tiedoston avain, koko ja järjestys product_images-tauluun ja näytä pikkukuvat poistopainikkeella. Validoi tyyppi ja koko palvelimella, ei pelkästään selaimessa.

Yksityisen asiakirjan lähetys:

Lisää Asiakirjat-sivu kirjautuneille asiakkaille. Asiakkaat voivat ladata PDF-tiedostoja enintään 20 Mt. Tiedostot ovat yksityisiä: tallenna ne tiedostotallennukseen, tallenna omistajan ID, alkuperäinen tiedostonimi, koko ja latausaika documents-tauluun, ja anna ladata ne vain omistajalle ja ylläpitäjille. Lataukset kulkevat palvelinreitin kautta, joka tarkistaa oikeudet. Älä koskaan paljasta näille tiedostoille julkista URL-osoitetta.

Hyödyllisiä jatkokehotteita:

Näytä edistymispalkki latauksen aikana ja selkeä virhe, jos tiedosto on liian suuri tai väärää tyyppiä.

Kun asiakirjarivi poistetaan, poista myös tallennettu tiedosto.

Vaihe vaiheelta

  1. Valitse tyypit ja kokorajat jokaiselle lähetyskentälle. Ole täsmällinen: ”PDF enintään 20 Mt”, ei ”asiakirjat”.
  2. Ota tallennus käyttöön. Tekoälysovelluskehittäjässä pyydä lähetyksiä chatissa, ja se määrittää tallennuksen; muualla luo bucket ja lisää sen tunnistetiedot palvelimen salaisuuksina.
  3. Luo tietokantataulu tiedostotietueille: tunnus, omistaja, tallennusavain, alkuperäinen nimi, tyyppi, koko, luontiaika.
  4. Rakenna lähetysreitti palvelimelle: tarkista, että käyttäjä on kirjautunut, tarkista tyyppi ja koko, luo turvallinen tallennusavain (ei käyttäjän tiedostonimeä), tallenna tiedosto ja lisää tietue.
  5. Rakenna lataus- tai näyttöpolku: julkinen URL julkisille tiedostoille; oikeudet tarkistava reitti tai allekirjoitettu URL yksityisille.
  6. Rakenna käyttöliittymä: tiedostonvalitsin, tarvittaessa vedä ja pudota, edistyminen, esikatselut, virheet.
  7. Hoida poistot, jotta tietueen poistaminen poistaa myös tallennetun tiedoston.
  8. Testaa: lähetä, lataa sivu uudelleen, julkaise tai julkaise uudelleen ja tarkista, että tiedosto latautuu yhä. Kirjaudu sitten toisena käyttäjänä ja yritä avata ensimmäisen käyttäjän yksityinen tiedosto.

Yleisimmät virheet

  • Lähetysten kirjoittaminen palvelimen levylle. Se toimii kehityksessä, mutta tiedostot katoavat käynnistyksen tai uudelleenjulkaisun jälkeen.
  • Selaimen tarkistusten luottaminen. Tiedostokentän ”accept”-asetus on vihje, ei turvallisuutta. Tarkista tyyppi ja koko palvelimella.
  • Käyttäjän tiedostonimen käyttäminen tallennusavaimena. Nimet törmäävät ja voivat sisältää outoja merkkejä. Luo yksilöllinen avain ja tallenna alkuperäinen nimi erikseen.
  • Julkiset bucketit yksityisille tiedostoille. Katso yllä; tämä on se virhe, joka päätyy uutisiin.
  • Minkä tahansa tiedostotyypin salliminen. HTML- tai SVG-tiedostot, joita tarjoillaan omasta domainistasi, voivat ajaa skriptejä joissakin ratkaisuissa. Hyväksy vain tarvitsemasi tyypit.
  • Ei kokorajaa. Yksi valtava lähetys voi syödä tallennuskiintiösi tai aikakatkaista pyynnön.
  • Orpotiedostot. Tietokantarivin poistaminen ilman tiedostoa täyttää hitaasti tallennustilaa, josta maksat.
  • Mobiilin unohtaminen. Puhelimen kuvat voivat olla suuria ja muodoissa kuten HEIC; päätä, hyväksytkö ne vai muunnatko ne.

Tarkistuslista

  • Tiedostot menevät objektitallennukseen, ei palvelimen levylle eikä tietokantaan
  • Jokaisella tiedostolla on tietokantatietue, jossa ovat omistaja, avain, nimi, tyyppi ja koko
  • Tyyppi ja koko tarkistetaan palvelimella
  • Tallennusavaimet luodaan, eikä niitä oteta tiedostonimestä
  • Yksityisiä tiedostoja tarjotaan vain oikeustarkistuksen jälkeen
  • Toinen käyttäjä ei pääse avaamaan yksityisiä tiedostoja, ei edes linkillä
  • Tietueen poistaminen poistaa tiedoston
  • Tiedostot latautuvat yhä julkaisun tai uudelleenjulkaisun jälkeen
  • Lähetysvirheet näytetään selkeästi, myös puhelimella

Tiedostolähetykset Mythexissä

Mythex voi ottaa tiedostotallennuksen automaattisesti käyttöön projektille, kun sovellus tarvitsee lähetyksiä, joten bucketia ei tarvitse määrittää käsin. Voit myös kirjoittaa chatiin /storage. Se on saatavilla Free- ja Pro-tasoilla, ja Free-tasolla on 1 Gt:n raja. Tilan näet kohdasta Settings → Storage.

Dokumentaation mukaan julkaistu hosting ei ole pysyvä paikallinen tiedostojärjestelmä, joten pyydä agenttia käyttämään alustan tallennusta eikä tallentamaan levylle. Tallennetut tiedostot ja lataukset maksetaan krediittisaldostasi koon ja ladattujen määrän mukaan; Pro maksaa puolet Free-hinnasta. Katso File storage dokumentaatiosta.

Lähetykset kulkevat usein käsi kädessä tietokannan kanssa tiedostotietueille ja kirjautumisen kanssa yksityisille tiedostoille. Jos rakennat paikkaa, jossa asiakkaat vaihtavat asiakirjoja, katso miten rakentaa asiakasportaali, ja käy läpi tietoturvatarkistuslista ennen julkaisua.

Kysymykset

Mihin ladatut tiedostot pitäisi tallentaa?

Objektitallennukseen (palveluun, joka on tehty tiedostoille ja jota kutsutaan usein bucketiksi), ei palvelimen levylle eikä tietokantaan. Tallenna tietokantaan vain tiedoston avain tai URL sekä tiedot, kuten nimi, koko ja omistaja.

Miksi ladatut tiedostoni katoavat julkaisun tai uudelleenjulkaisun jälkeen?

Useimmat hostausalustat eivät säilytä pysyvää paikallista levyä: kun sovellus käynnistyy uudelleen tai julkaistaan uudelleen, sen levylle kirjoitetut tiedostot menetetään. Tallenna lähetykset sen sijaan objektitallennukseen.

Miten pidän ladatut tiedostot yksityisinä?

Älä tee tiedostoista julkisesti luettavia. Anna palvelimesi tarkistaa, että kirjautunut käyttäjä saa nähdä tiedoston, ja lähetä se tai palauta sille lyhytaikainen allekirjoitettu linkki.

Tukeeko Mythex tiedostolähetyksiä?

Kyllä. Mythex voi ottaa tiedostotallennuksen käyttöön projektille, kun sovellus tarvitsee lähetyksiä. Se on saatavilla Free- ja Pro-tasoilla, ja Free-tasolla on 1 Gt:n raja. Pyydät lähetysominaisuutta agentilta tai kirjoitat komennon /storage.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

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