Уровень доступа BLOB-объекта можно настроить одним из следующих способов:
Задав уровень доступа по умолчанию для учетной записи хранения по умолчанию. BLOB-объекты учетной записи наследуют этот уровень доступа, если вы не переопределяли данный параметр для отдельного BLOB-объекта.
Путем явной настройки уровня BLOB-объекта при отправке. Большой двоичный объект можно создать на горячем, холодном, холодном или архивном уровне.
Путем изменения уровня существующего большого двоичного объекта с помощью операции set BLOB-объектов. Как правило, эта операция используется для перехода с горячего уровня на более холодный.
Путем копирования большого двоичного объекта с помощью операции копирования BLOB-объектов. Как правило, эта операция используется для перехода с более холодного уровня на более горячий.
Дополнительные сведения о уровнях доступа для больших двоичных объектов см. в разделе "Уровни доступа" для данных BLOB-объектов.
Установка уровня доступа по умолчанию для учетной записи хранения
Уровень доступа по умолчанию для учетной записи хранения общего назначения версии 2 определяет, на каком подключенном уровне по умолчанию создается новый BLOB-объект. Установить уровень доступа по умолчанию для учетной записи хранения общего назначения версии 2 можно в момент ее создания или путем обновления конфигурации существующей учетной записи.
Изменение уровня доступа по умолчанию для существующей учетной записи хранения общего назначения версии 2 применяется ко всем BLOB-объектам в этой учетной записи, для которых уровень доступа не установлен явно. Изменение уровня доступа по умолчанию может повлиять на выставление счета. Подробные сведения см. в статье о параметре уровня доступа учетной записи по умолчанию.
Чтобы задать уровень доступа по умолчанию для учетной записи хранения на этапе ее создания на портале Azure, выполните указанные ниже действия.
На странице Учетные записи хранения нажмите кнопку Создать.
Заполните поля на вкладке Основные сведения.
На вкладке "Дополнительно" в хранилище BLOB-объектов задайте для уровня "Доступ" значение "Горячий", "Холодный" или "Холодный". Значение по умолчанию — Горячий.
Выберите Просмотр и создание, чтобы проверить настройки и создать учетную запись хранения.
Чтобы изменить уровень доступа по умолчанию для существующей учетной записи хранения на портале Azure, выполните указанные ниже действия.
Перейдите к учетной записи хранения на портале Azure.
В разделе Параметры выберите пункт Конфигурация.
Найдите параметр уровня доступа к BLOB-объектам (по умолчанию) и выберите "Горячий", "Холодный" или "Холодный". Значение по умолчанию — Горячий, если вы ранее не задавали это свойство.
Сохранение изменений.
Чтобы изменить уровень доступа по умолчанию для учетной записи хранения с помощью PowerShell, вызовите команду Set-AzStorageAccount, указав новый уровень доступа по умолчанию.
Чтобы изменить уровень доступа по умолчанию для учетной записи хранения с помощью PowerShell, вызовите команду Set-AzStorageAccount, указав новый уровень доступа по умолчанию.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
Н/П
Настройка уровня BLOB-объекта при отправке
При отправке BLOB-объекта в хранилище Azure задать уровень этого BLOB-объекта можно двумя способами:
Вы можете явно указать уровень, на котором будет создан BLOB-объект. Этот параметр переопределит уровень доступа по умолчанию для учетной записи хранения. Вы можете задать уровень для большого двоичного объекта или набора БОЛЬШИХ двоичных объектов при отправке в горячий, холодный, холодный или архив.
Вы можете добавить BLOB-объект, не указывая для него уровень. В этом случае большой двоичный объект будет создан на уровне доступа по умолчанию, указанном для учетной записи хранения (горячей или холодной).
При отправке нового большого двоичного объекта с областью шифрования изменить уровень доступа для этого большого двоичного объекта нельзя.
В следующих разделах описывается, как указать, что большой двоичный объект передается на горячий или холодный уровень. Дополнительные сведения о том, как отправить BLOB-объект на архивный уровень, см. в этой статье.
Отправка BLOB-объекта на определенный подключенный уровень
Чтобы создать большой двоичный объект на горячем, холодном или холодном уровне, укажите этот уровень при создании большого двоичного объекта. Уровень доступа, заданный при отправке, переопределяет уровень доступа по умолчанию для учетной записи хранения.
Чтобы добавить BLOB-объект или набор BLOB-объектов на определенный уровень с портала Azure, выполните указанные ниже действия.
Перейдите к целевому контейнеру.
Нажмите кнопку Отправить.
Выберите файл или файлы для отправки.
Разверните раздел Дополнительно и установите для уровня доступа значение Горячий или Холодный.
Нажмите кнопку Отправить.
Чтобы добавить BLOB-объект или набор BLOB-объектов на определенный уровень с помощью PowerShell, вызовите команду Set-AzStorageBlobContent, как показано в примере ниже. Не забудьте заменить значения заполнителей в скобках собственными значениями.
$rgName = <resource-group>
$storageAccount = <storage-account>
$containerName = <container>
# tier can be hot, cool, cold, or archive
$tier = <tier>
# Get context object
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Create new container.
New-AzStorageContainer -Name $containerName -Context $ctx
# Upload a single file named blob1.txt to the cool tier.
Set-AzStorageBlobContent -Container $containerName `
-File "blob1.txt" `
-Blob "blob1.txt" `
-Context $ctx `
-StandardBlobTier Cool
# Upload the contents of a sample-blobs directory to the cool tier, recursively.
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
Set-AzStorageBlobContent -Container $containerName `
-Context $ctx `
-StandardBlobTier $tier
Чтобы добавить BLOB-объект на определенный уровень с помощью Azure CLI, вызовите команду az storage blob upload, как показано в примере ниже. Не забудьте заменить значения заполнителей в скобках собственными значениями. Замените <tier> заполнитель на hot, coolcoldили archive.
Чтобы добавить набор BLOB-объектов на определенный уровень с помощью Azure CLI, вызовите команду az storage blob upload-batch, как показано в примере ниже. Не забудьте заменить значения заполнителей в скобках собственными значениями. Замените <tier> заполнитель на hot, coolcoldили archive.
Чтобы передать большой двоичный объект на определенный уровень с помощью AzCopy, выполните команду azcopy copy и задайте для параметра --block-blob-tier значение hot, cool или archive.
Примечание.
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных ("). Этот пример исключает маркер SAS, так как предполагает, что вы предоставили учетные данные авторизации с помощью идентификатора Microsoft Entra. Ознакомьтесь со статьей Начало работы с AzCopy, чтобы получить сведения о способах предоставления учетных данных авторизации в службе хранилища.
Чтобы отправить набор больших двоичных объектов на определенный уровень с помощью AzCopy, укажите ссылку на локальный каталог или содержимое в нем, а затем добавьте --recursive=true в команду.
У учетных записей хранения есть уровень доступа по умолчанию, на котором создаются новые BLOB-объекты. По умолчанию можно установить горячий или холодный уровень доступа. Применение этого параметра отчасти зависит от типа учетной записи хранения.
Уровень доступа по умолчанию для новой учетной записи хранения общего назначения версии 2 устанавливается на горячий уровень по умолчанию. Изменить уровень доступа по умолчанию можно при создании учетной записи хранения или после этого.
При создании устаревшей учетной записи хранения BLOB-объектов необходимо указать параметр уровня доступа по умолчанию как горячий или холодный при создании учетной записи хранения. Изменить уровень доступа по умолчанию для учетной записи хранения можно после ее создания.
Любой BLOB-объект, которому уровень не присвоен явным образом, наследует его из параметра уровня доступа учетной записи. Выяснить, наследуется ли уровень доступа для BLOB-объектов, можно с помощью портала Azure, PowerShell или Azure CLI.
Если уровень доступа большого двоичного объекта выводится из параметра уровня доступа учетной записи по умолчанию, то портал Azure отображает уровень доступа как "Горячий" (выводимый), "Холодный" (вывод) или "Холодный" (выводимый)).
Чтобы определить уровень доступа к BLOB-объекту и понять, наследуется ли он, с помощью Azure PowerShell, извлеките BLOB-объект, а затем проверьте его свойства AccessTier и AccessTierInferred.
$rgName = "<resource-group>"
$storageAccount = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
# Get the storage account context.
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Get the blob from the service.
$blob = Get-AzStorageBlob -Context $ctx -Container $containerName -Blob $blobName
# Check the AccessTier and AccessTierInferred properties.
# If the access tier is inferred, that property returns true.
$blob.BlobProperties.AccessTier
$blob.BlobProperties.AccessTierInferred
Чтобы определить уровень доступа к BLOB-объекту и понять, наследуется ли он, с помощью Azure CLI, извлеките BLOB-объект, а затем проверьте его свойства blobTier и blobTierInferred.
Переместить BLOB-объект на другой уровень можно с помощью PowerShell, Azure CLI, AzCopy v10 или одной из клиентских библиотек службы хранилища Azure.
Изменение уровня BLOB-объекта
При изменении уровня большого двоичного объекта сам этот объект и все его данные перемещаются на целевой уровень путем вызова операции Set Blob Tier (напрямую или через политику управления жизненным циклом) или с помощью команды AzCopy azcopy set-properties. Этот вариант обычно будет лучшим методом для перевода BLOB-объекта с более горячего на более холодный уровень.
Совет
Задачу хранилища можно использовать для изменения уровня доступа больших двоичных объектов в масштабе нескольких учетных записей хранения на основе определенного набора условий. Задача хранения — это ресурс, доступный в служба хранилища Azure Actions; бессерверная платформа, которую можно использовать для выполнения общих операций с данными для миллионов объектов в нескольких учетных записях хранения. Дополнительные сведения см. в статье "Что такое служба хранилища Azure действия?".
Чтобы изменить уровень большого двоичного объекта на более холодный уровень в портал Azure, выполните следующие действия.
Перейдите к BLOB-объекту, для которого требуется изменить уровень.
Выберите BLOB-объект и нажмите кнопку Изменить уровень.
В диалоговом оке Изменение уровня выберите целевой уровень.
Выберите кнопку Сохранить.
Чтобы изменить уровень большого двоичного объекта на более холодный уровень с помощью PowerShell, используйте свойство BLOB-объекта для возврата ссылки .NET на большой двоичный объект, а затем вызовите метод SetAccessTier в этой ссылке. Не забудьте заменить заполнители в угловых скобках собственными значениями.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
$tier = "<tier>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier($tier, $null, "Standard")
Чтобы изменить уровень большого двоичного объекта на более холодный уровень с помощью Azure CLI, вызовите команду az storage blob set-tier . Не забудьте заменить заполнители в угловых скобках собственными значениями.
Чтобы изменить уровень большого двоичного объекта на более холодный, используйте команду azcopy set-properties и задайте -block-blob-tier параметр.
Внимание
Использование AzCopy для изменения уровня доступа BLOB-объекта в настоящее время предоставляется в режиме предварительной версии.
Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.
Примечание.
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных ("). Этот пример исключает маркер SAS, так как предполагает, что вы предоставили учетные данные авторизации с помощью идентификатора Microsoft Entra. Ознакомьтесь со статьей Начало работы с AzCopy, чтобы получить сведения о способах предоставления учетных данных авторизации в службе хранилища.
Чтобы изменить уровень доступа для всех BLOB-объектов в виртуальном каталоге, укажите имя виртуального каталога вместо имени большого двоичного объекта, а затем добавьте в команду --recursive=true.
Копирование BLOB-объекта на другой подключенный уровень
Вызовите операцию копирования BLOB-объекта, чтобы скопировать BLOB-объект с одного уровня на другой. При копировании BLOB-объекта на другой уровень он и все его данные перемещаются на целевой уровень. Исходный BLOB-объект останется на исходном уровне, а на целевом уровне будет создан новый. Вызов большого двоичного объекта копирования рекомендуется для большинства сценариев, когда большой двоичный объект перемещается на более теплый уровень, или повторное создание большого двоичного объекта из архивного уровня.
Чтобы скопировать большой двоичный объект в холодный и горячий с помощью PowerShell, вызовите команду Start-AzStorageBlobCopy и укажите целевой уровень. Не забудьте заменить заполнители в угловых скобках собственными значениями.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-Context $ctx
Чтобы скопировать большой двоичный объект на более теплый уровень с помощью Azure CLI, вызовите команду az storage blob copy start и укажите целевой уровень. Не забудьте заменить заполнители в угловых скобках собственными значениями.
Чтобы скопировать большой двоичный объект из холодного в горячий с помощью AzCopy, используйте команду azcopy copy и задайте для --block-blob-tier параметра значение hot.
Примечание.
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Этот пример исключает маркер SAS, так как предполагает, что вы предоставили учетные данные авторизации с помощью идентификатора Microsoft Entra. Ознакомьтесь со статьей Начало работы с AzCopy, чтобы получить сведения о способах предоставления учетных данных авторизации в службе хранилища.
AzCopy не поддерживает копирование из исходного большого двоичного объекта на уровне архива.
Операция копирования синхронна, поэтому при возврате команды все файлы копируются.
Массовое масштабирование
Чтобы переместить большие двоичные объекты на другой уровень в контейнере или папке, перечислите большие двоичные объекты и вызовите операцию "Задать уровень BLOB-объектов" для каждой из них. В следующем примере показано, как выполнить эту операцию:
При перемещении большого количества больших двоичных объектов на другой уровень используйте пакетную операцию для оптимальной производительности. Пакетная операция отправляет в службу несколько вызовов API в одном запросе. В число субопераций, поддерживаемых операцией пакетной обработки BLOB-объектов, входят удаление BLOB-объекта и установка уровня BLOB-объекта.
Чтобы изменить уровень доступа больших двоичных объектов с помощью пакетной операции, используйте одну из клиентских библиотек служба хранилища Azure. В следующем примере кода показано, как выполнить простую пакетную операцию с помощью клиентской библиотеки .NET.
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
Подробное описание приложения, в котором показано, как изменять уровни с помощью пакетной операции, см. в разделе AzBulkSetBlobTier.