Blob storage: introduzione

Questo post è parte di una serie su windows azure.

Nel post precedente abbiamo introdotto il windows azure storage, nelle sue varie sfaccettature. Ora proviamo, anche con un po’ di codice, a capire come interagire con il blob storage, messo a disposizione da azure.

Prendiamo spunto da una slide del training kit di windows azure rilasciato ad ottobre, per capire come sono “organizzati” il blob storage e i suoi contenuti:

Ogni file (blob) è contenuto in un container, che è assimilabile, quindi, alla root nella quale verranno poi caricate effettivamente le risorse. La piattaforma (windows azure) utilizza il blobname come “partition key” per bilanciare i carichi automaticamente e in modo del tutto trasparente, in base alle richieste, e distribuire le risorse tra i vari server.

La creazione di un container può avvenire o tramite il management portal oppure tramite codice. Il setup “up-front” fatto tramite il management portal è molto utile in tutti quegli scenari in cui l’environment deve essere già configurato correttamente prima dell’uso.

In fase di setup è possibile, oltre al nome del container, definire anche il suo livello di visibilità, impostando uno dei valori consentiti: Private, Public blob o Public container

Per interagire, lato codice, con il windows azure storage abbiamo sostanzialmente due opzioni, sia per il blob, sia per table e queue:

  • la client library, disponibile per differenti piattaforme. Per i progetti .Net, utilizzando nuget basta installare il package corretto (WindowsAzure.Storage)
  • REST api

Lo snippet di codice più semplice, utilizzando la client library per .Net, per poter uploadare un file sul container appena creato è il seguente (e direi che il codice è abbastanza autoesplicativo):

Con poche semplici righe di codice, abbiamo caricato il nostro primo file sul blob storage di azure. Nei prossimi post cercheremo di andare un po’ più nel dettaglio…