Microsoft Azure rende disponibile la creazione di spazi di archiviazione chiamati Azure Storage. Sono ovviamente delle soluzioni di storage cloud-based che offrono una serie di vantaggiose funzionalità, alcune delle quali sono il backup & restore e la geo-replica. Utilizzare gli Azure Storage ha il vantaggio di garantirci una soluzione di archiviazione più sicura e dedicata, ma soprattutto scalabile. Utilizzare gli Azure Storage per il salvataggio di file statici ci permette di risparmiare quote di storage nel nostro Azure Web Site per la memorizzazione di dati che in alcuni scenari potrebbero essere il risultato di operazioni di upload. Nello script in basso possiamo vedere il codice che ci permette di effettuare l'upload, di quelli che Azure definisce "Blobs" all'interno di un "Container", che possiamo comunemente assimilare ad una cartella.
NOTA: Prima di poter interagire con gli Azure Storage è necessario installare tramite NuGet il package: WindowsAzure.Storage (l'ultima versione stabile è disponibile è la 4.0.1)
public async Task UploadFile()
{
StorageCredentials auth = new StorageCredentials("storage_account_name", "storage_access_key");
CloudStorageAccount account = new CloudStorageAccount(auth, false); // false = No HTTPS
CloudBlobClient client = account.CreateCloudBlobClient();
CloudBlobContainer fileContainer = client.GetContainerReference("container_name");
CloudBlockBlob fileToBeUploaded = fileContainer.GetBlockBlobReference("destination_file_name");
StorageFile localFile = await StorageFile.GetFileFromPathAsync("path_to_local_file");
using (Stream fileStream = await localFile.OpenStreamForReadAsync())
{
fileStream.Seek(0, SeekOrigin.Begin);
#if NETFX_CORE || WINDOWS_APP
await fileToBeUploaded.UploadFromStreamAsync(fileStream.AsInputStream());
#else
await fileToBeUploaded.UploadFromStreamAsync(fileStream);
#endif
}
}La natura dei vari parametri passati ai metodi è definita in basso:
- storage_account_name: il nome del nostro Azure Storage;
- storage_access_key: la chiave di autenticazione del nostro storage, è reperibile, una volta selezionato l'account di storage che ci interessa, facendo click su "Manage access key/Gestisci chiavi di accesso";
- container_name: il nome del container dentro la quale vogliamo caricare i dati (necessario, se non obbligatorio averne almeno 1);
- destination_file_name: il nome del file di destinazione all'interno dell'Azure Storage;
- path_to_local_file: l'indirizzo locale della risorsa che desideriamo caricare.
Una volta ottenuto un riferimento ad un oggetto di tipo StorageFile andiamo leggere il suo Stream, tale Stream sarà poi passato come parametro alla funzione di upload vera e propria. Per sicurezza viene fatto un seek all'origine dello stream e convertito in IInputStream per fornire un parametro di input coerente con la firma del metodo UploadFromStreamAsync
Lo script sopra indicato risulta compatibile con le piattaforme WinRT e Windows Phone 8 grazie alla direttiva di compilazione specificata, va da se che entrambi i progetti devono avere referenziato il precedentemente menzionato package NuGet.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Interazione con ReconnectModal in Blazor
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Supportare la crittografia di ASP.NET Core con Azure Container App
Le cron expression di un workflow di GitHub
Ridurre il reflow ottimizzando il CSS
Creare comandi nella dashboard .NET Aspire
Utilizzo di CSS Scroll Snap per realizzare un carousel
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Ottimizzare i costi con Smart tier in Azure Blob Storage
Creare una file based app con C#
Realizzare un accordion con gli elementi HTML details e summary
Gestire progetti .NET + React in .NET Aspire
I più letti di oggi
- Microsoft Visual Studio Code: un nuovo editor gratuito per Windows, MacOSX e Linux per sviluppatori ASP.NET e Node.js
- Costruire servizi basati su XML: SOAP
- Usare le transazioni in applicazioni ASP 1/2
- Security in ASP.NET MVC 5 con ASP.NET Identity 2
- Le novità di ASP.NET 4.0: dall'estendibilità ad ASP.NET AJAX e MVC 2
- Un primo sguardo a Microsoft Velocity
- Gli application pool di IIS 6
- Disponibile la beta 1 del .NET Framework 4.0 e di Visual Studio 2010
- Tutto per portarsi ASP.NET 4.0, Silverlight 4.0 e .NET Framework 4.0 sotto l'ombrellone
- Ecco la roadmap di ASP.NET 5: il rilascio definitivo nel corso del primo trimestre 2016




