Esporta (0) Stampa
Espandi tutto

Come gestire la scadenza del contenuto di BLOB nella Rete di distribuzione dei contenuti (CDN) di Azure

Aggiornamento: aprile 2014

I BLOB per cui è più utile la memorizzazione nella cache della rete CDN di Azure sono quelli a cui si accede frequentemente durante il periodo di durata (TTL). Un BLOB rimane nella cache per il periodo TTL e quindi viene aggiornato dal servizio Blob una volta trascorso tale periodo. Il processo viene quindi ripetuto.

Sono disponibili due opzioni per controllare il periodo TTL.

  1. Non impostare valori per la cache in modo che venga utilizzato il periodo TTL predefinito di 7 giorni.

  2. Impostare in modo esplicito la proprietà x-ms-blob-cache-control per una richiesta Put Blob (API REST), Put Block List (API REST) o Set Blob Properties (API REST) oppure utilizzare la libreria gestita di Azure per impostare la proprietà BlobProperties.CacheControl. Con l'impostazione di questa proprietà si imposta il valore dell'intestazione Cache-Control per il Blob. Il valore dell'intestazione o della proprietà deve specificare il valore appropriato in secondi. Ad esempio, per impostare su un anno il periodo massimo di memorizzazione nella cache, è possibile specificare l'intestazione della richiesta come x-ms-blob-cache-control: public, max-age=31556926. Per informazioni dettagliate sull'impostazione di intestazioni di memorizzazione nella cache, vedere la Specifica HTTP/1.1.

Qualsiasi contenuto che si desideri memorizzare nella cache tramite la rete CDN deve essere archiviato nell'account di archiviazione di Azure come Blob accessibile pubblicamente. Per ulteriori dettagli sul servizio Blob di Azure, vedere Concetti relativi al servizio Blob.

Esistono alcuni modi diversi per utilizzare il contenuto nel servizio Blob:

  • Tramite l'API gestita fornita dai Riferimenti per gli sviluppatori di Azure.

  • Tramite uno strumento di gestione dell'archiviazione di terze parti.

  • Tramite l'API REST dei servizi di archiviazione di Azure.

Nell'esempio di codice seguente viene presentata un'applicazione console in cui viene utilizzata la libreria gestita di Azure per creare un contenitore, impostarne le autorizzazioni per l'accesso pubblico e creare un Blob all'interno. Viene anche specificato in modo esplicito un intervallo di aggiornamento desiderato attraverso l'impostazione dell'intestazione Cache-Control nel Blob.

Supponendo che la rete CDN sia stata abilitata come illustrato sopra, il Blob creato verrà memorizzato nella cache dalla rete CDN. Assicurarsi di specificare le credenziali dell'account utilizzando l'account di archiviazione e la chiave di accesso personali:

using System;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.StorageClient;

namespace BlobsInCDN
{
    class Program
    {
        static void Main(string[] args)
        {
            //Specify storage credentials.
            StorageCredentialsAccountAndKey credentials = new StorageCredentialsAccountAndKey("storagesample",
                "m4AHAkXjfhlt2rE2BN/hcUR4U2lkGdCmj2/1ISutZKl+OqlrZN98Mhzq/U2AHYJT992tLmrkFW+mQgw9loIVCg==");
            
            //Create a reference to your storage account, passing in your credentials.
            CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);
            
            //Create a new client object, which will provide access to Blob service resources.
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

            //Create a new container.
            CloudBlobContainer container = blobClient.GetContainerReference("cdncontent");
            container.CreateIfNotExist();

            //Specify that the container is publicly accessible.
            BlobContainerPermissions containerAccess = new BlobContainerPermissions();
            containerAccess.PublicAccess = BlobContainerPublicAccessType.Container;
            container.SetPermissions(containerAccess);

            //Create a new blob and write some text to it.
            CloudBlob blob = blobClient.GetBlobReference("cdncontent/testblob.txt");
            blob.UploadText("This is a test blob.");

            //Set the Cache-Control header on the blob to specify your desired refresh interval.
            blob.SetCacheControl("public, max-age=31536000");
        }
    }

    public static class BlobExtensions
    {
        //A convenience method to set the Cache-Control header.
        public static void SetCacheControl(this CloudBlob blob, string value)
        {
            blob.Properties.CacheControl = value;
            blob.SetProperties();
        }
    }
}

Verificare che il Blob sia disponibile tramite l'URL specifico della rete CDN. L'URL del Blob illustrato in precedenza sarà simile al seguente:

http://az1234.vo.msecnd.net/cdncontent/testblob.txt

Se lo si desidera, è possibile utilizzare uno strumento come wget o Fiddler per esaminare i dettagli della richiesta e della risposta.

Vedere anche

Mostra:
© 2014 Microsoft