/ bouw een filetransfer-applicatie op de CloudVPS Object Store
Het bouwen van mijn CloudTransphper applicatie
Recentelijk, heb ik de CloudTransphper demo applicatie gebouwd om een artikel te ondersteunen dat ik aan het schrijven was voor de September issue of PHParchitect, een internationaal PHP magazine. In dit artikel geef ik een tuturial over het bouwen van een basic versie van de populaire filetransfer applicatie WeTransfer. Voor het opslaan van de geuploade files gebruik ik de CloudVPS Object Store. In deze blogpost wil ik mijn ervaringen met de CloudVPS object store delen tijdens de development van deze applicatie.
OpenStack
Het eerste ding dat opvalt is het feit dat CloudVPS OpenStack gebruikt voor haar object store. Er zijn verschillende redenen waarom dit erg goed helpt om uw software up-en-running te krijgen:
- Behalve de CloudVPS documentatie is er een hoop documentatie op het internet te vinden over hoe het werkt.
- Er zijn veel open source libraries om met de OpenStack API te kunnen verbinden. Hiervan kunnen voorbeelden en instructies gevonden worden op de CloudVPS Knowledge Base.
De OpenStack API is erg makkelijk om te gebruiken, en ik vond al snel een library die me in staat stelde er mee te werken. De HPCloud-PHP library werkt uitstekend met de CloudVPS Object Store. De CloudVPS Knowledge Base bevat een howto voor deze library. Ik heb een bescheiden wrapper class geschreven om de CloudVPS API gemakkelijk in mijn project te integreren.
Moeiteloze setup
Vaak als een externe dienst opgezet moet worden, duurt het vrij lang om dit te realiseren. Ik vond de Object Store van CloudVPS een uitstekende uitzondering op die regel. Met behulp van een duidelijke web interface kan ik mijn containers beheren en zelfs de objecten binnen de containers. Het configureren van mijn code om tegen de API te authenticeren was ook gemakkelijk. Hier helpt de documentatie weer goed bij, en na een korte zoektocht op Google naar OpenStack gerelateerde onderwerpen was ik in staat alles gemakklijk op te zetten.
Private vs Public
Eén ding dat mij opviel (maar wat ik niet heb geïmplementeerd in de applicatie) was het verschil tussen privé en publieke containers. In mijn huidige demo-applicatie gebruik ik een publieke container, maar als ik een meer gevavanceerde versie van CloudTransphper zou implementeren dan zou ik het gebruik van privé containers aanraden. Behalve het toevoegen van een aantal API calls veranderd dit verder niets fundamenteels aan de logica van de applicatie. Het is echter wel belangrijk om het verschil te benoemen omdat publieke containers gemakkelijk toegankelijk zijn. Als u een WeTransfer achtige dienst wilt implementeren en u wilt dat uw gebruikers vertrouwelijke bestanden kunnen versturen dan zou het gebruik van prive containers aan te raden zijn.
Ten slotte...
De hierboven beschreven achtergrond bij mijn ontwikkelproces illustreert goed waarom ik de CloudVPS Object Store gekozen heb: In plaats van het debuggen van specifieke issues en het zoeken naar specifieke oplossingen heb ik mijn tijd kunnen besteden aan het leren van de OpenStack API en het nadenken over ontwerpbeslissingen. De implementatie was uiteindelijk een relatief klein detail. Dit is hoe het integreren van externe systemen moet zijn: Geen zorgen over implementatie maar een focus op de 'big picture'.
Tags: