In ottica Cloud ogni risorsa (immagine o documento che sia) può e deve essere condivisa tra più istanze, che oggi ci sono e domani non si sa
. Per fare questo abbiamo a disposizione blobs e drives.
Talvolta, però, specialmente nella migrazione si applicazioni, possiamo avere la necessità di utilizzare una cartella temporanea per salvare un documento che solo successivamente deve essere elaborato e quindi copiato nel blob. Parliamo quindi di risorse non condivise e con un ciclo di vita davvero limitato.
Windows Azure mette a disposizione il RoleEnvironment.GetLocalResource, un componente che da accesso in lettura/scrittura ad un’apposita area del file system:
1: LocalResource localResource = RoleEnvironment.GetLocalResource("LocalCache");
2: _tempFolder = Path.Combine(localResource.RootPath, "temp");
3: if (!Directory.Exists(_tempFolder))
4: {
5: new DirectoryInfo(localResource.RootPath).CreateSubdirectory("temp");
6: }
LocalCache è, appunto, un’area opportunamente configurata e ben delimitata nella quale possiamo salvare i nostri files o creare sottocartelle, tutto utilizzando le già ben note classi di System.IO.
LocalCache deve essere necessariamente configurato nel ServiceDefinition.csdef:
1: <LocalResources>
2: <LocalStorage name="LocalCache" cleanOnRoleRecycle="true" />
3: </LocalResources>
oppure utilizzando il pannello di gestione del Cloud Project:

…pena l’eccezione che da il nome a questo post
.