Verkeer bij downloaden
Wat je opslaat kost weinig; wat er uit gehaald wordt kan meer kosten dan de opslag zelf. Een populaire video of een fotogalerij die door zoekmachines wordt bezocht, is de post die mensen verrast.
Zodra gebruikers iets kunnen uploaden, verandert je app. Er komt opslag bij die groeit, verkeer dat geld kost en een reeks randgevallen: bestanden die te groot zijn, formaten die je niet verwacht en foto's die per ongeluk voor iedereen zichtbaar worden.
Niet in je database en niet naast je applicatiecode.
Bestanden in je database opslaan werkt bij tien testbestanden en wordt daarna een probleem: back-ups worden traag en groot, en je database is niet gemaakt om grote hoeveelheden binaire gegevens uit te serveren.
De gebruikelijke oplossing is objectopslag: een dienst waar je bestanden neerzet en waar je met een korte, tijdelijke link toegang toe geeft. In je database bewaar je alleen de verwijzing en de gegevens eromheen, zoals wie het bestand heeft geüpload en waar het bij hoort.
De tweede regel is dat de gebruiker rechtstreeks naar die opslag uploadt, niet via je eigen server. Je app geeft alleen een tijdelijke toestemming af. Dat scheelt belasting, het werkt met grote bestanden en het voorkomt dat je applicatie omvalt wanneer drie mensen tegelijk iets zwaars insturen.
Opslag is meestal goedkoop. De rest niet altijd.
Wat je opslaat kost weinig; wat er uit gehaald wordt kan meer kosten dan de opslag zelf. Een populaire video of een fotogalerij die door zoekmachines wordt bezocht, is de post die mensen verrast.
Een telefoonfoto is al snel enkele megabytes en wordt getoond als miniatuur. Bewaar je alleen het origineel, dan verstuur je bij elke weergave het volle formaat.
Concepten, mislukte uploads en verwijderde items blijven staan als je ze niet actief opruimt. Opslag die alleen groeit, is een rekening die alleen groeit.
Vijf dingen die later lastig te repareren zijn.
Uploads zijn zelden waar je idee op wordt beoordeeld.
Uploaden werkend krijgen is een uur; de randgevallen zijn dat niet.
Een werkende upload met afgeschermde opslag, een limiet en een miniatuur krijgen we op een dag ruim voor elkaar. Dat is genoeg om te laten zien dat je gebruikers hun foto's, documenten of bonnen kwijt kunnen en dat het geheel klopt.
Wat we bewust laten liggen zijn de randgevallen: uploads die halverwege afbreken, bestanden van honderden megabytes, meerdere bestanden tegelijk met een voortgangsbalk. Die zijn goed te bouwen en ze zeggen niets over de vraag of je idee werkt.
Wat we wél altijd goed zetten is de afscherming. Bestanden die openbaar staan terwijl ze dat niet horen te zijn, is de fout die we het vaakst tegenkomen bij prototypes die door anderen zijn gemaakt, en de fout met de vervelendste gevolgen.
Technisch kan het en het is zelden verstandig. Je back-ups worden groot en traag en je database gaat werk doen waar hij niet voor is gemaakt. Zet bestanden in objectopslag en bewaar in de database alleen de verwijzing plus de gegevens eromheen.
De opslag zelf is bij de meeste aanbieders bescheiden. Wat harder kan oplopen is het verkeer bij het downloaden, zeker bij afbeeldingen en video. Reken daarom niet met het aantal gigabytes dat je opslaat maar met hoe vaak die bestanden bekeken worden.
Zet de opslag afgeschermd en laat je app per aanvraag een tijdelijke link uitgeven, nadat hij heeft gecontroleerd of deze gebruiker dit bestand mag zien. Een link die niet verloopt en bij iedereen werkt, is precies zo openbaar als hij klinkt.
Ja, en het liefst bij het uploaden. Telefoonfoto's zijn groot en worden meestal klein getoond. Een miniatuur en een weergaveversie naast het origineel schelen wachttijd voor je gebruikers en verkeer op je rekening.
Een geüpload bestand is invoer van iemand anders. Controleer de grootte, sta alleen de formaten toe die je nodig hebt en kijk naar wat het bestand werkelijk is in plaats van naar de extensie. Serveer geüploade bestanden bovendien niet vanaf hetzelfde domein als je app.
Foto's waarop mensen herkenbaar zijn, zijn persoonsgegevens. Dan gelden dezelfde regels als voor de rest: een grondslag, een bewaartermijn en de mogelijkheid om ze echt te verwijderen. Denk daarnaast aan de locatiegegevens die vaak in telefoonfoto's zitten.
Vertel in de intake wat er geüpload wordt en door wie. Dan zetten we op de bouwdag een afgeschermde opslag neer die je meteen kunt uitproberen.
Een korte intake volgt na je inschrijving. Daarna stemmen we scope en datum af.
We nemen contact op om de intake in te plannen.
We gebruiken cookies om je ervaring te verbeteren en het gebruik van de site te meten.