Gli Azure Storage Blob sono un servizio che permette di depositare file nel cloud in tutta sicurezza e con tutte le funzionalità di scalabilità offerte dalla piattaforma di cloud di Microsoft. Sono in grado di reggere migliaia di richieste al secondo e godono di ottime prestazioni.
Essendo interrogabili via REST e in particolare via GET per ottenere i file, essi sono sottoposti a tutti i meccanismi HTTP. Tra questi possiamo sfruttare l'header Cache che permette di dare indicazioni a chi riceve il file riguardante la validità del file appena ricevuto e quale tipologia di cache è supportata. Questo header è utile soprattutto ai browser che devono caricare per esempio un'immagine, i quali sanno gestire questo header memorizzando l'immagine nel disco dell'utente. In questo modo, a parità di URI, il browser eviterà di interrogare lo storage di Azure, portando benefici all'utente e a noi. All'utente perché riceverà una visualizzazione immediata, a noi perché evitiamo una transazione e traffico in meno.
Per fare questo dobbiamo valorizzare alcune proprietà speciali del blob o dell'intero container. Il metodo più comodo è quello di usare alcuni tool come Cloud Storage Studio, ma possiamo realizzare la stessa cosa, ed eventualmente anche automatizzarla, attraverso gli SDK di ogni linguaggio. Nel caso di .NET possiamo sfruttare la proprietà Properties.CacheControl di CloudBlob e valorizzarla come segue.
CloudBlob blob = client.GetBlobReference("test.txt"); // Cache di un anno blob.Properties.CacheControl = "public, max-age=31536000"; blob.SetProperties();
Nell'esempio impostiamo una cache pubblica della durata di un anno (in secondi). E' importante infine persistere la modifica chiamando il metodo SetProperties.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un webhook in Azure DevOps
Usare il colore CSS per migliorare lo stile della pagina
Gestire domini wildcard in Azure Container Apps
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Gestire i dati con Azure Cosmos DB Data Explorer
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Eseguire una query su SQL Azure tramite un workflow di GitHub
Usare lo spread operator con i collection initializer in C#
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
I più letti di oggi
- Sfruttare le API di geolocalizzazione di JavaScript
- Webcast 'Windows Vista: WinFX il framework per gli sviluppatori'
- Impostare il tema light o dark utilizzando i CSS
- Proteggere le risorse Azure con private link e private endpoints
- Cambiare automaticamente lo stato di un work item in una pipeline di Azure DevOps
- Criptare la comunicazione con mTLS in Azure Container Apps
- Ottimizzare l'aggiornamento di una entity sul database con Entity Framework
- Usare entità non mappate come parametri in metodi Invoke di WCF Ria Services e Silverlight
- Annunciata la licenza commerciale di Kinect for Windows: dal primo febbraio 2012