Hantera förfallotid för Azure Blob Storage i Azure CDN

Blob Storage-tjänsten i Azure Storage är ett av flera Azure-baserade ursprung som är integrerade med Azure Content Delivery Network (CDN). Allt offentligt tillgängligt blobinnehåll kan cachelagras i Azure CDN tills TTL-förflutit (Time To Live). TTL bestäms av Cache-Control rubriken i HTTP-svaret från ursprungsservern. I den här artikeln beskrivs flera sätt som du kan ange huvudet på Cache-Control en blob i Azure Storage.

Du kan också styra cacheinställningarna från Azure-Portal genom att ange CDN-cachelagringsregler. Om du skapar en cachelagringsregel och anger cachelagringsbeteendet till Åsidosätt eller Kringgå cache, ignoreras de cachelagringsinställningar som anges av ursprunget som beskrivs i den här artikeln. Information om allmänna cachelagringsbegrepp finns i Så här fungerar cachelagring.

Tips

Du kan välja att inte ange någon TTL för en blob. I det här fallet tillämpar Azure CDN automatiskt en standard-TTL på sju dagar, såvida du inte har konfigurerat cachelagringsregler i Azure-Portal. Denna standard-TTL gäller endast för allmänna webbleveransoptimeringar. För optimering av stora filer är standard-TTL en dag, och för optimering av medieströmning är standard-TTL ett år.

Mer information om hur Azure CDN fungerar för att påskynda åtkomsten till blobar och andra filer finns i Översikt över Azure Content Delivery Network.

Mer information om Azure Blob Storage finns i Introduktion till Blob Storage.

Ange Cache-Control rubriker med hjälp av CDN-cachelagringsregler

Den bästa metoden för att ange en blobrubrik Cache-Control är att använda cachelagringsregler i Azure-Portal. Mer information om CDN-cachelagringsregler finns i Kontrollera azure CDN-cachelagringsbeteende med cachelagringsregler.

Anteckning

Cachelagringsregler är endast tillgängliga för Azure CDN Standard från Verizon och Azure CDN Standard från Akamai-profiler . För Azure CDN Premium från Verizon-profiler måste du använda Azure CDN-regelmotorn i Hantera portalen för liknande funktioner.

Så här navigerar du till sidan med CDN-cachelagringsregler:

  1. I Azure-Portal väljer du en CDN-profil och sedan blobens slutpunkt.

  2. I det vänstra fönstret under inställningar, väljer du Cachelagringsregler.

    Knapp för CDN-cachelagringsregler

    Sidan Cachelagringsregler visas.

    CDN-cachelagringssida

Så här anger du en Blob Storage-tjänsts Cache-Control rubriker med hjälp av globala cachelagringsregler:

  1. Under Globala cachelagringsregler anger du Beteende för cachelagring av frågesträngar till Ignorera frågesträngar och anger Cachelagringsbeteende till Åsidosätt.

  2. För Cachens förfallotid anger du 3600 i rutan Sekunder eller 1 i rutan Timmar .

    Exempel på globala CDN-cachelagringsregler

    Den här globala cachelagringsregeln anger en cachevaraktighet på en timme och påverkar alla begäranden till slutpunkten. Den åsidosätter alla Cache-Control ELLER Expires HTTP-huvuden som skickas av ursprungsservern som anges av slutpunkten.

  3. Välj Spara.

Så här anger du en blobfils Cache-Control rubriker med hjälp av anpassade cachelagringsregler:

  1. Under Anpassade cachelagringsregler skapar du två matchningsvillkor:

    A. För det första matchningsvillkoret anger du Matchningsvillkor till Sökväg och anger /blobcontainer1/* som Matchningsvärde. Ange Cachelagringsbeteende till Åsidosätt och ange 4 i rutan Timmar .

    B. För det andra matchningsvillkoret anger du Matchningsvillkor till Sökväg och anger /blobcontainer1/blob1.txt för Matchningsvärde. Ange Cachelagringsbeteende till Åsidosätt och ange 2 i rutan Timmar .

    Exempel på anpassade CDN-cachelagringsregler

    Den första anpassade cachelagringsregeln anger en cachevaraktighet på fyra timmar för alla blobfiler i /blobcontainer1 mappen på ursprungsservern som anges av slutpunkten. Den andra regeln åsidosätter endast den första regeln för blob1.txt blobfilen och anger en cachevaraktighet på två timmar för den.

  2. Välj Spara.

Ange Cache-Control rubriker med hjälp av Azure PowerShell

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Azure PowerShell är ett av de snabbaste och mest kraftfulla sätten att administrera dina Azure-tjänster. Använd cmdleten Get-AzStorageBlob för att hämta en referens till bloben och ange .ICloudBlob.Properties.CacheControl sedan egenskapen .

Exempel:

# 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()

Tips

Du kan också använda PowerShell för att hantera dina CDN-profiler och slutpunkter.

Ange Cache-Control rubriker med hjälp av .NET

Om du vill ange en blobrubrik Cache-Control med hjälp av .NET-kod använder du Azure Storage-klientbiblioteket för .NET för att ange egenskapen BlobHttpHeaders.CacheControl .

Exempel:

    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" });
        }
    }

Tips

Det finns fler .NET-kodexempel i Azure Blob Storage-exempel för .NET.

Ange Cache-Control rubriker med hjälp av andra metoder

Azure Storage Explorer

Med Azure Storage Explorer kan du visa och redigera dina bloblagringsresurser, inklusive egenskaper som egenskapen CacheControl.

Så här uppdaterar du egenskapen CacheControl för en blob med Azure Storage Explorer:

  1. Välj en blob och välj sedan Egenskaper på snabbmenyn.
  2. Rulla ned till egenskapen CacheControl .
  3. Ange ett värde och välj sedan Spara.

Azure Storage Explorer egenskaper

Azure CLI

Du kan hantera Azure Blob-resurser från kommandoraden via Azure CLI. Om du vill ange cachekontrollhuvudet när du laddar upp en blob med Azure CLI anger du egenskapen cacheControl med hjälp av växeln -p . I följande exempel visas hur du ställer in TTL till en timme (3 600 sekunder):

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

REST API för Azure Storage-tjänster

Du kan använda REST-API:et för Azure Storage-tjänster för att uttryckligen ange egenskapen x-ms-blob-cache-control med hjälp av följande åtgärder på en begäran:

Testa Cache-Control-huvudet

Du kan enkelt kontrollera TTL-inställningarna för dina blobar. Med webbläsarens utvecklarverktyg testar du att bloben Cache-Control innehåller svarshuvudet. Du kan också använda ett verktyg som Wget, Postman eller Fiddler för att undersöka svarshuvudena.

Nästa steg