2012-12-02 13 views
5

Nell'articolo How to use the Windows Azure Blob Storage Service in .NET viene utilizzato il seguente codice per dimostrare come si può caricare un filecache la connessione ad Azure Blob archiviazione

// Retrieve storage account from connection string. 
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString")); 

// Create the blob client. 
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

// Retrieve reference to a previously created container. 
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer"); 

// Retrieve reference to a blob named "myblob". 
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob"); 

// Create or overwrite the "myblob" blob with contents from a local file. 
using (var fileStream = System.IO.File.OpenRead(@"path\myfile")) 
{ 
    blockBlob.UploadFromStream(fileStream); 
} 

Se si ha un servizio in esecuzione lungo che è stato di accettare i file e la loro memorizzazione in blob archiviazione eseguiresti tutti questi passaggi ogni volta? Oppure potresti avere una classe che aveva un riferimento a blockBlob utilizzato da più richieste? Quanto (se esiste) di questo è corretto memorizzare nella cache e utilizzare da più richieste? (che suppongo significhi discussioni)

risposta

3

Molti di questi oggetti hanno costruttori piuttosto leggeri e non sono garantiti come thread safe (controllare la documentazione MSDN), quindi non mi preoccuperei troppo di memorizzarli nella cache. L'unico che tendo a mantenere come oggetto statico è l'account di archiviazione cloud.

5

Concordo con @knightpfhor, non c'è nulla da memorizzare nella cache. Fino a quando non chiami UploadFromStream, non sono state chiamate transazioni a esecuzione prolungata. Tutto è in memoria, costruisce oggetti.

Questo non è come una connessione SQL, in cui i programmatori avrebbero trovato modi intelligenti per le connessioni di cache perché erano costosi per aprire - questo è chiamate REST, quindi ogni azione dei dati che cambia è una chiamata https e tutta la preparazione prima di esso , è semplicemente una manipolazione di oggetti leggeri

+0

Perché non ho concordato? https://www.youtube.com/watch?v=i5j1wWY-qus –

Problemi correlati