Dropbox och SharpBox

Hur går man till väga för att programmatiskt ladda upp en fil till sitt Dropbox-konto?
Min SIC-applikation har sedan begynnelsen använt sin egen webbserver som filarea, men numer används istället DropBox vilket fungerar utmärkt. Det första steget av förändringen togs under en tågresa då jag tog tillfället i akt att pröva mig fram och samla ihop lite noteringar om hur man kommer igång med att programmatiskt spara och läsa filer mot Dropbox.

Dropbox

“Dropbox is a free service that lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!"

dropbox.com

Genomför följande steg för att erhålla ett Dropboxkonto samt registrera den App som senare ska användas för att kommunicera med Dropbox.

  1. Skapa ett nytt Dropboxkonto på www.dropbox.com/login#register.
  2. Godkänn Dropbox App Developer regler och villkor på www.dropbox.com/developers/apply.
  3. Fortsätt med nästa steg där en App med passande testnamn och en kortfattad lorem ipsum beskrivning kan skapas.
Nu bör Dropbox admingränssnitt visa upp den App Key och App secret som senare ska användas.

SharpBox

Eftersom tågresan var lång bestämde jag mig för att blanda in en aktör till, Sharpbox, vilket verkar vara ett populärt ramverk som stödjer ett flertal lagringstjänser och plattformar.

“SharpBox is the right free open source solution for your project. Our goal is to disburden software projects from the demand to implement storage access twice to support a wide range of storage clouds."

sharpbox.codeplex.com

Genomför följande steg för att sätta upp en testapplikation i Visual Studio tillsammans med SharpBox.

  1. Skapa en ny C# Console Application i Visual Studio.
  2. Gå in i applikationens properties och sätt Target Framework till .NET Framework 4.
  3. Lägg till SharpBox NuGet-paket som återfinns under namnet AppLimit.CloudComputing.SharpBox.
  4. Gå ut i filutforskaren och leta upp approot\packages\AppLimit.CloudComputing.SharpBox.1.2.0.542\lib\net40-full där SharpBox verktyg DropBoxTokenIssuer.exe ivrigt väntar på att användas. Starta det för att inleda skapandet av en Security Token-fil som påvisar applikationens rätt att utnyttja Dropbox-kontot.
  5. Fyll i Application Key och Application Secret samt namnet "DropBoxToken"Security Token-filen och klicka på Authorize-knappen.
  6. Nu bör verktyget visa Dropbox inloggningsruta (om inte, dubbelkolla ifall rätt Target Framework är satt) där ovan skapade Dropbox-konto används för att logga in.
  7. Om allting fungerat redirectas man nu till en ny webbsida på codeplex (som ej existerar vilket är lite förvirrande) och Security Token-filen ska ha skapats i samma mapp som verktyget befinner sig i.
  8. Lägg Security Token-filen och en tom texttest.txt-fil i C:\Test.

Testprogram

Slutligen krävs lite kod, som ska klistras in i Program.cs, för att nå målet:


Har allting fungerat lika bra som under min tågresa, där det skålande sällskapet bredvid skulle till Dubai (förhoppningsvis inte enbart via tåg), så ska det nu gå att se i valfri Dropboxklient att filen texttest.txt laddats upp.

Tips

Problem: Nerladdad fil i webbapplikationen via Dropbox är av korrekt storlek men till synes tom.
Lösning: Använd "Stream.Seek(0, 0)" före streamen sänds vidare till browsern.