Hoi Freekd ,
Bedankt voor de toelichting! Dit soort applicaties zijn zeker goed te ontwikkelen. Al moet je wel rekening houden met verschillende variabelen zoals waar de opslag van de bestanden die worden geüpload komt en hoeveel bandbreedte per server beschikbaar is. Overigens begrijp ik uit je verhaal dat de URL's waar mensen hun bestanden kunnen uploaden altijd het zelfde blijven, zoals /suburl1
en /suburl2
en dat alle bestanden een bijzonder naam krijgen zoals /uploads/9fj4jfn0masm5gu
?
Content
Wanneer je daadwerkelijk een systeem wilt ontwikkelen zal je ook moeten beslissen welke content je wilt toestaan die gebruikers kunnen uploaden, alle soorten bestanden of enkel de kantoorbestanden zoals .zip
, .rar
, .doc
, .ppt
etc. Daarbij zou je ook rekening moeten houden met hoe groot de bestanden maximaal mogen zijn, voor het geval dat iemand een bestand van 100GB
upload naar je server en je voor de opslag moet betalen.
Automatisch bestanden verwijderen/beperkte zichtbaarheid
Door middel van server side cronjobs
heb je de mogelijkheid om oude bestanden na verloop van tijd automatisch op de achtergrond te laten verwijderen van je server. Je zou in de database bijvoorbeeld de upload datum (en tijd) kunnen bijhouden om deze dan met een database query op te halen, bijvoorbeeld: weergeef alle bestanden die ouder zijn dan 24 uur
. Een andere mogelijkheid is om een einddatum
toe te voegen die de gasten kunnen kiezen bij het uploaden. Dan kun je zoeken naar de bestanden waarvan de tijd is verlopen om deze daarna van je server te verwijderen.
Opslag
Zoals ik al eerder zei, opslag is bij een upload website enorm belangrijk. Je zou er voor kunnen kiezen om dat op de server zelf te doen, of verschillende uploadservers te huren waar alleen geüploade bestanden op staan. Het zou misschien voordeliger kunnen zijn om een Amazon cloud storage (AWS S3) bucket op te zetten voor de geüploade content. Hierdoor heb je alleen onderhoud aan het platform zelf en weet je zeker dat er verder weinig gebeurt met de geüploade bestanden, aangezien deze gewoon beschikbaar blijven en heb je er volledige controle over hebt.
Bestanden die je bijvoorbeeld op DevNL upload worden ook gehost op een AWS S3 bucket aangezien dat voor ons voordelig is en wij hierdoor het DevNL platform en de uploads gescheiden houden. Wel hebben we overigens een policy opgezet dat er voor zorgt dat afbeeldingen die worden geüpload deze niet te te gebruiken zijn andere websites (hotlinken), dan laden ze namelijk niet en scheelt dat ons AWS bandbreedte kosten.
Er komt veel bij kijken, maar daardoor is er tegelijkertijd ook enorm veel mogelijk 😃