Управление сроком действия хранилища BLOB-объектов Azure в Azure CDN

Служба хранилища BLOB-объектов в службе хранилища Azure —это один из нескольких источников в облаке Azure, интегрированных с сетью доставки содержимого (CDN) Azure. Любое общедоступное содержимое BLOB-объекта может кэшироваться в Azure CDN до истечения его срока жизни (TTL). Срок жизни определяется заголовком Cache-Control, указанным в HTTP-ответе исходного сервера. В этой статье описано несколько способов определения заголовка Cache-Control для большого двоичного объекта в службе хранилища Azure.

Вы также можете управлять параметрами кэша на портале Azure, определив правила кэширования CDN. Если создать правило кэширования и настроить его для переопределения или отключения кэша, предоставляемые системой параметры, которые описаны в этой статье, будут игнорироваться. См. дополнительные сведения о функции кэширования.

Совет

Срок жизни для BLOB-объекта можно не указывать. В этом случае Azure CDN автоматически применяет стандартное значение TTL (семь дней), если только вы не настроили правила кэширования на портале Azure. Этот срок жизни по умолчанию применяется только к оптимизациям общей веб-доставки. Для оптимизаций больших файлов срок жизни по умолчанию составляет один день, а для оптимизаций потоковой передачи срок жизни по умолчанию составляет один год.

Дополнительные сведения о том, как Azure CDN ускоряет доступ к BLOB-объектам и другим файлам, см. в статье Общие сведения о сети доставки содержимого (CDN) Azure.

Дополнительные сведения о хранилище BLOB-объектов Azure см. в статье Общие сведения о хранилище BLOB-объектов.

Определение заголовков Cache-Control с использованием правил кэширования CDN

Для установки заголовка Cache-Control BLOB-объекта рекомендуем использовать правила кэширования на портале Azure. Дополнительные сведения о правилах кэширования CDN см. в статье Управление поведением кэширования сети доставки содержимого Azure с помощью правил кэширования.

Примечание

Правила кэширования доступны только для профилей Azure CDN уровня "Стандартный" от Verizon и Azure CDN уровня "Стандартный" от Akamai. Для профилей Azure CDN уровня "Премиум" от Verizon необходимо использовать обработчик правил Azure CDN на портале Управление с аналогичными функциональными возможностями.

Чтобы перейти на страницу правил CDN для кэширования:

  1. На портале Azure выберите профиль CDN и конечную точку для BLOB-объекта.

  2. В области слева в разделе "Параметры" выберите Правила кэширования.

    Кнопка правил кэширования CDN

    Появится страница Правила кэширования.

    Страница кэширования CDN

Чтобы установить заголовки Cache-Control для службы хранения BLOB-объектов, используя глобальные правила кэширования, сделайте следующее:

  1. В разделе Глобальные правила кэширования задайте для параметра Режим кэширования строк запросов значение Пропускать строки запросов, а для параметра Поведение кэширования —значение Переопределить.

  2. Для параметра Срок действия кэша введите 3600 в поле Секунды или 1 в поле Часы.

    Пример глобальных правил кэширования CDN

    Это глобальное правило кэширования задает значение длительности кэширования в один час и влияет на все запросы к конечной точке. Оно переопределяет все заголовки HTTP Cache-Control или Expires, отправленные с сервера-источника, указанного конечной точкой.

  3. Нажмите кнопку Сохранить.

Чтобы установить заголовки Cache-Control для файла большого двоичного объекта, используя настраиваемые правила кэширования, сделайте следующее:

  1. В разделе Настраиваемые правила кэширования создайте два условия соответствия.

    A. В первом условии соответствия задайте для параметра Условие соответствия значение Путь и введите значение /blobcontainer1/* для параметра Значения соответствия. Задайте для параметра Поведение кэширования значение Переопределить и введите 4 в поле Часы.

    Б. Во втором условии соответствия задайте параметру Условие соответствия значение Путь и введите значение /blobcontainer1/blob1.txt для параметра Значения соответствия. Задайте для параметра Поведение кэширования значение Переопределить и введите 2 в поле Часы.

    Пример настраиваемых правил кэширования CDN

    Первое настраиваемое правило кэширования задает длительность кэширования четыре часа для всех файлов больших двоичных объектов в папке /blobcontainer1 на сервере-источнике, указанном конечной точкой. Второе правило переопределяет первое правило только для файла большого двоичного объекта blob1.txt и задает для него длительность кэширования два часа.

  2. Нажмите кнопку Сохранить.

Определение заголовков Cache-Control с помощью Azure PowerShell

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Azure PowerShell —это одно из самых быстрых и мощных средств администрирования служб Azure. Используйте командлет Get-AzStorageBlob, чтобы получить ссылку на большой двоичный объект, а затем определите свойство .ICloudBlob.Properties.CacheControl.

Пример:

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

Совет

Можно также использовать PowerShell для управления профилями и конечными точками CDN.

Определение заголовков Cache-Control с помощью .NET

Чтобы определить заголовок Cache-Control для большого двоичного объекта с помощью кода .NET, задайте свойство BlobHttpHeaders.CacheControl при помощи клиентской библиотеки службы хранилища Azure для .NET.

Пример:

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

Совет

Другие примеры кода .NET для хранилища BLOB-объектов Azure см. на этой странице.

Определение заголовков Cache-Control с помощью других методов

Обозреватель службы хранилища Azure

С помощью обозревателя службы хранилища Azure можно просматривать и изменять ресурсы хранилища BLOB-объектов, включая такие свойства, как CacheControl.

Чтобы обновить свойство CacheControl большого двоичного объекта с помощью обозревателя хранилищ Azure, сделайте следующее.

  1. Выберите большой двоичный объект, а затем выберите Свойства в контекстном меню.
  2. Прокрутите меню вниз до свойства CacheControl.
  3. Введите значение и выберите Сохранить.

Свойства в обозревателе службы хранилища Azure

Azure CLI

Вы можете управлять ресурсами BLOB-объектов Azure из командной строки с помощью Azure CLI. Чтобы определить заголовок Cache-Control при передаче большого двоичного объекта с помощью Azure CLI, определите свойство cacheControl с помощью параметра -p. В следующем примере показано, как задать срок жизни, равный 1 часу (3600 секунд).

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

REST API служб хранилища Azure

Можно использовать REST API служб хранилища Azure, чтобы явно задать свойство x-ms-blob-cache-control с помощью следующих операций в запросе:

Проверка заголовка Cache-Control

Вы легко можете проверить установленный для BLOB-объектов срок жизни. Используя встроенные в браузер средства разработчика, убедитесь, что ваш BLOB-объект содержит заголовок ответа Cache-Control. Для просмотра заголовков ответа можно использовать и другие инструменты, например wget, Postman или Fiddler.

Next Steps