Управление сроком действия хранилища BLOB-объектов Azure в сети доставки содержимого Azure
Служба хранилища BLOB-объектов в служба хранилища Azure является одним из нескольких источников, интегрированных с Azure сеть доставки содержимого. Любое общедоступное содержимое BLOB-объектов можно кэшировать в Azure сеть доставки содержимого до тех пор, пока не истекло время жизни (TTL). TTL определяется заголовком Cache-Control
в ответе HTTP от исходного сервера. В этой статье описано несколько способов определения заголовка Cache-Control
для большого двоичного объекта в службе хранилища Azure.
Вы также можете управлять параметрами кэша из портал Azure, задав правила кэширования сети доставки содержимого. Если создать правило кэширования и настроить его для переопределения или отключения кэша, предоставляемые системой параметры, которые описаны в этой статье, будут игнорироваться. См. дополнительные сведения о функции кэширования.
Совет
Срок жизни для BLOB-объекта можно не указывать. В этом случае Azure сеть доставки содержимого автоматически применяет срок жизни по умолчанию в семь дней, если только вы не настроили правила кэширования в портал Azure. Этот срок жизни по умолчанию применяется только к оптимизациям общей веб-доставки. Для оптимизаций больших файлов срок жизни по умолчанию составляет один день, а для оптимизаций потоковой передачи срок жизни по умолчанию составляет один год.
Дополнительные сведения о том, как работает Azure сеть доставки содержимого для ускорения доступа к большим двоичным объектам и другим файлам, см. в статье "Обзор сеть доставки содержимого Azure".
Дополнительные сведения о хранилище BLOB-объектов Azure см. в статье Общие сведения о хранилище BLOB-объектов.
Настройка заголовков кэша управления с помощью правил кэширования сети доставки содержимого
Для установки заголовка Cache-Control
BLOB-объекта рекомендуем использовать правила кэширования на портале Azure. Дополнительные сведения о правилах кэширования сети доставки содержимого см. в разделе "Управление поведением кэширования Azure сеть доставки содержимого с помощью правил кэширования".
Примечание.
Правила кэширования доступны только для azure CDN уровня "Стандартный" из профилей Edgio . Для Azure CDN Premium из профилей Edgio необходимо использовать подсистему правил azure сеть доставки содержимого на портале "Управление" для аналогичных функций.
Чтобы перейти на страницу правил CDN для кэширования:
В портал Azure выберите профиль сети доставки содержимого, а затем выберите конечную точку для большого двоичного объекта.
В области слева в разделе "Параметры" выберите Правила кэширования.
Появится страница Правила кэширования.
Чтобы установить заголовки Cache-Control для службы хранения BLOB-объектов, используя глобальные правила кэширования, сделайте следующее:
В разделе Глобальные правила кэширования задайте для параметра Режим кэширования строк запросов значение Пропускать строки запросов, а для параметра Поведение кэширования — значение Переопределить.
Для параметра Срок действия кэша введите 3600 в поле Секунды или 1 в поле Часы.
Это глобальное правило кэширования задает значение длительности кэширования в один час и влияет на все запросы к конечной точке. Он переопределяет любые
Cache-Control
илиExpires
HTTP-заголовки, отправляемые сервером-источником, указанным конечной точкой.Выберите Сохранить.
Чтобы установить заголовки Cache-Control для файла большого двоичного объекта, используя настраиваемые правила кэширования, сделайте следующее:
В разделе Настраиваемые правила кэширования создайте два условия соответствия.
А. В первом условии соответствия задайте для параметра Условие соответствия значение Путь и введите значение
/blobcontainer1/*
для параметра Значения соответствия. Задайте для параметра Поведение кэширования значение Переопределить и введите 4 в поле Часы.B. Во втором условии соответствия задайте параметру Условие соответствия значение Путь и введите значение
/blobcontainer1/blob1.txt
для параметра Значения соответствия. Задайте для параметра Поведение кэширования значение Переопределить и введите 2 в поле Часы.Первое настраиваемое правило кэширования задает длительность кэширования четыре часа для всех файлов больших двоичных объектов в папке
/blobcontainer1
на сервере-источнике, указанном конечной точкой. Второе правило переопределяет первое правило только для файла большого двоичного объектаblob1.txt
и задает для него длительность кэширования два часа.Выберите Сохранить.
Определение заголовков Cache-Control с помощью Azure PowerShell
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка 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 для управления профилями сети доставки содержимого и конечными точками.
Определение заголовков 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, сделайте следующее.
- Выберите большой двоичный объект, а затем выберите Свойства в контекстном меню.
- Прокрутите меню вниз до свойства CacheControl.
- Введите значение и выберите Сохранить.
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>
API-интерфейс REST служб хранилища Azure
REST API служб служба хранилища Azure можно использовать для явного задания свойства x-ms-blob-cache-control с помощью следующих операций по запросу:
- вставка большого двоичного объекта;
- Put Block List (Вставка списка блокировки)
- задание свойств службы BLOB-объекта.
Проверка заголовка Cache-Control
Вы легко можете проверить установленный для BLOB-объектов срок жизни. С помощью средств разработчика браузера проверьте, включает Cache-Control
ли большой двоичный объект заголовок ответа. Для просмотра заголовков ответа можно использовать и другие инструменты, например wget, Postman или Fiddler.