Gestire la scadenza del servizio Archiviazione BLOB di Azure nella rete per la distribuzione di contenuti di Azure

Il servizio di archiviazione BLOB in Archiviazione di Azure è una delle diverse origini basate su Azure integrate con Azure rete per la distribuzione di contenuti. Qualsiasi contenuto BLOB accessibile pubblicamente può essere memorizzato nella cache in Azure rete per la distribuzione di contenuti fino al termine della durata (TTL). Il valore TTL viene determinato dall'intestazione Cache-Control nella risposta HTTP dal server di origine. Questo articolo descrive vari modi in cui è possibile impostare l'intestazione Cache-Control in un BLOB in Archiviazione di Azure.

È anche possibile controllare le impostazioni della cache dal portale di Azure impostando le regole di memorizzazione nella cache della rete per la distribuzione di contenuti. Se si crea una regola di memorizzazione nella cache e si imposta il relativo comportamento su Ignora o Ignora cache, le impostazioni di memorizzazione nella cache fornite in origine e descritte in questo articolo vengono ignorate. Per informazioni sui concetti generali sulla memorizzazione nella cache, vedere Come funziona la memorizzazione nella cache.

Suggerimento

È possibile scegliere di non impostare alcuna durata (TTL) per un BLOB. In questo caso, Azure rete per la distribuzione di contenuti applica automaticamente un TTL predefinito di sette giorni, a meno che non siano state configurate le regole di memorizzazione nella cache nella portale di Azure. Questa impostazione predefinita di durata (TTL) si applica solo alle ottimizzazioni di distribuzione web generali. Per le ottimizzazioni di file di grandi dimensioni, il valore TTL predefinito è un giorno e per le ottimizzazioni dei flussi dei file multimediali, il valore TTL predefinito è un anno.

Per altre informazioni sul funzionamento di Azure rete per la distribuzione di contenuti per velocizzare l'accesso ai BLOB e ad altri file, vedere Panoramica di Azure rete per la distribuzione di contenuti.

Per altre informazioni su Archiviazione BLOB di Azure, vedere Introduzione all'archiviazione BLOB.

Impostazione delle intestazioni di Controllo cache tramite le regole di memorizzazione nella cache della rete per la distribuzione di contenuti

Il metodo preferito per la configurazione dell'intestazione Cache-Control di un BLOB consiste nell'usare le regole di memorizzazione nella cache nel portale di Azure. Per altre informazioni sulle regole di memorizzazione nella cache della rete per la distribuzione di contenuti, vedere Controllare il comportamento di memorizzazione nella cache di Azure rete per la distribuzione di contenuti con regole di memorizzazione nella cache.

Nota

Le regole di memorizzazione nella cache sono disponibili solo per Rete CDN di Azure profili Standard di Edgio. Per Rete CDN di Azure Premium dai profili Edgio, è necessario usare il motore regole di Azure rete per la distribuzione di contenuti nel portale di gestione per funzionalità simili.

Per passare alla pagina delle regole di memorizzazione nella cache della rete CDN:

  1. Nella portale di Azure selezionare un profilo di rete per la distribuzione di contenuti e quindi selezionare l'endpoint per il BLOB.

  2. In Impostazioni nel riquadro sinistro selezionare Regole di memorizzazione nella cache.

    Screenshot del pulsante regole di memorizzazione nella cache della rete per la distribuzione di contenuti.

    Viene visualizzata la pagina Regole di memorizzazione nella cache.

    Screenshot della pagina di memorizzazione nella cache della rete per la distribuzione di contenuti.

Per configurare le intestazioni Cache-Control di un servizio di archiviazione BLOB tramite regole di memorizzazione nella cache globali:

  1. In Regole di memorizzazione nella cache globali, impostare Comportamento di memorizzazione nella cache della stringa di query su Ignora stringhe di query e impostare Comportamento di memorizzazione nella cache su Ignora.

  2. Per Durata scadenza cache immettere 3600 nella casella Secondi o 1 nella casella Ore.

    Screenshot dell'esempio di regole di memorizzazione nella cache globale della rete per la distribuzione di contenuti.

    Questa regola di memorizzazione nella cache globale imposta una durata di un'ora per la cache e influisce su tutte le richieste per l'endpoint. Esegue l'override di qualsiasi Cache-Control intestazione HTTP o Expires che viene inviata dal server di origine specificato dall'endpoint.

  3. Seleziona Salva.

Per configurare le intestazioni Cache-Control di un file di BLOB tramite regole di memorizzazione nella cache personalizzate:

  1. In Regole di memorizzazione nella cache personalizzate creare due condizioni di corrispondenza:

    R. Per la prima condizione di corrispondenza impostare Condizione di corrispondenza su Percorso e immettere /blobcontainer1/* per Valori di corrispondenza. Impostare Comportamento di memorizzazione nella cache su Ignora e immettere 4 nella casella Ore.

    B. Per la seconda condizione di corrispondenza impostare Condizione di corrispondenza su Percorso e immettere /blobcontainer1/blob1.txt per Valori di corrispondenza. Impostare Comportamento di memorizzazione nella cache su Ignora e immettere 2 nella casella Ore.

    Screenshot dell'esempio di regole di memorizzazione nella cache personalizzate della rete per la distribuzione di contenuti.

    La prima regola di memorizzazione nella cache personalizzata imposta una durata della cache di quattro ore per qualsiasi file BLOB nella cartella /blobcontainer1 nel server di origine specificato dall'endpoint. La seconda regola esegue l'override della prima regola solo per il file BLOB blob1.txt e imposta una durata della cache di due ore per tale file.

  2. Seleziona Salva.

Impostazione delle intestazioni Cache-Control tramite Azure PowerShell

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Azure PowerShell è uno dei modi più rapidi ed efficaci per amministrare i servizi di Azure. Usare il cmdlet Get-AzStorageBlob per ottenere un riferimento al BLOB, quindi impostare la proprietà .ICloudBlob.Properties.CacheControl.

Ad esempio:

# Create a storage context
$context = New-AzStorageContext -StorageAccountName "<storage account name>" -StorageAccountKey "<storage account key>"

# Get a reference to the blob
$blob = Get-AzStorageBlob -Context $context -Container "<container name>" -Blob "<blob name>"

# Set the CacheControl property to expire in 1 hour (3600 seconds)
$blob.ICloudBlob.Properties.CacheControl = "max-age=3600"

# Send the update to the cloud
$blob.ICloudBlob.SetProperties()

Suggerimento

È anche possibile usare PowerShell per gestire i profili e gli endpoint della rete per la distribuzione di contenuti.

Impostazione delle intestazioni Cache-Control tramite .NET

Per specificare l'intestazione di Cache-Control un BLOB usando il codice .NET, usare la libreria client Archiviazione di Azure per .NET per impostare la proprietà BlobHttpHeaders.CacheControl.

Ad esempio:

    class Program
    {
        const string containerName = "<container name>";
        const string blobName = "<blob name>";
        const string connectionString = "<storage connection string>";
        static void Main()
        {
            // Retrieve storage account information from connection string
            BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

            // Create a blob client for interacting with the blob service.
            BlobClient blob = container.GetBlobClient(blobName);

            // Set the CacheControl property to expire in 1 hour (3600 seconds)
            blob.SetHttpHeaders(new BlobHttpHeaders {CacheControl = "max-age=3600" });
        }
    }

Suggerimento

Altri esempi di codice .NET sono disponibili in Esempi di Archiviazione BLOB di Azure per .NET.

Impostazione delle intestazioni Cache-Control tramite altri metodi

Azure Storage Explorer

Con Azure Storage Explorer, è possibile visualizzare e modificare le risorse di archiviazione BLOB, incluse le proprietà, come ad esempio la proprietà CacheControl.

Per aggiornare la proprietà CacheControl di un BLOB con Azure Storage Explorer:

  1. Selezionare un BLOB e quindi selezionare Proprietà nel menu di scelta rapida.
  2. Scorrere verso il basso fino a visualizzare la proprietà CacheControl.
  3. Immettere un valore e quindi selezionare Salva.

Proprietà di Azure Storage Explorer

L'interfaccia della riga di comando di Azure

È possibile gestire le risorse BLOB di Azure dalla riga di comando tramite l'interfaccia della riga di comando di Azure. Per impostare l'intestazione di controllo della cache quando si carica un blob con l'interfaccia della riga di comando di Azure, impostare la proprietà cacheControl usando l'opzione -p. Il seguente esempio mostra come impostare la durata TTL su un'ora (3600 secondi):

azure storage blob upload -c <connectionstring> -p cacheControl="max-age=3600" .\<blob name> <container name> <blob name>

API REST dei servizi Archiviazione di Azure

È possibile usare l'API REST dei servizi di Archiviazione di Azure per impostare in modo esplicito la proprietà x-ms-blob-cache-control usando le operazioni seguenti su una richiesta:

Test dell'intestazione Cache-Control

È possibile verificare facilmente le impostazioni di durata (TTL) del BLOB. Con gli strumenti di sviluppo del browser, verificare che il BLOB includa l'intestazione della Cache-Control risposta. È anche possibile usare uno strumento come Wget, Postman o Fiddler per esaminare le intestazioni della risposta.

Passaggi successivi