启用和管理 blob 版本控制
可以启用 Blob 存储版本控制,以便在修改或删除 blob 时,自动维护之前版本的 blob。 启用 blob 版本控制后,如果错误地修改或删除了数据,则可以还原 blob 的先前版本以恢复数据。
本文介绍如何使用 Azure 门户或 Azure 资源管理器模板启用或禁用存储帐户的 blob 版本控制。 若要详细了解 blob 版本控制,请参阅 Blob 版本控制。
启用 Blob 版本控制
可以通过 Azure 门户、PowerShell、Azure CLI 或 Azure 资源管理器模板启用 blob 版本控制。
在 Azure 门户中为存储帐户启用 blob 版本控制:
在门户中导航到存储帐户。
在“数据管理”下,选择“数据保护”。
在“跟踪”部分中,选择“为 blob 启用版本控制”,然后选择是保留所有版本还是在一段时间后将其删除。
重要
如果设置“在以下时间段后删除版本”选项,则系统会自动将规则添加到存储帐户的生命周期管理策略中。 添加该规则后,“在以下时间段后删除版本”选项将再也不会显示在“数据保护”配置页中。
可以通过删除规则,使该选项重新显示在“数据保护”页中。 如果生命周期管理策略包含用于删除版本的其他规则,则必须先删除这些规则,然后才能重新显示“在以下时间段后删除版本”选项。
若要使用 PowerShell 为存储帐户启用 blob 版本控制,请首先安装 Az.Storage 模块版本 2.3.0 或更高版本。 然后调用 Update-AzStorageBlobServiceProperty 命令来启用版本控制,如以下示例所示。 请务必将尖括号中的值替换为你自己的值:
# Set resource group and account variables.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
# Enable versioning.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-IsVersioningEnabled $true
若要使用 Azure CLI 为存储帐户启用 blob 版本控制,请首先安装 Azure CLI 版本 2.2.0 或更高版本。 然后调用 az storage account blob-service-properties update 命令来启用版本控制,如以下示例所示。 请务必将尖括号中的值替换为你自己的值:
az storage account blob-service-properties update \
--resource-group <resource_group> \
--account-name <storage-account> \
--enable-versioning true
若要通过模板启用 blob 版本控制,请创建一个模板,并将 IsVersioningEnabled 属性设置为 true 。 以下步骤说明了如何在 Azure 门户中创建模板。
在 Azure 门户中,选择“创建资源”。
在“搜索市场”中键入“模板部署”,然后按 ENTER。
依次选择“模板部署”、“创建”、“在编辑器中生成自己的模板” 。
在模板编辑器中粘贴以下 JSON。 将 <accountName>
占位符替换为存储帐户的名称。
保存模板。
指定帐户的资源组,然后选择“购买”按钮来部署模板并启用更改 blob 版本控制。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts/blobServices",
"apiVersion": "2019-06-01",
"name": "<accountName>/default",
"properties": {
"IsVersioningEnabled": true
}
}
]
}
有关如何在 Azure 门户中通过模板部署资源的详细信息,请参阅使用 Azure 门户部署资源。
列出 blob 版本
若要显示 Blob 的版本,请使用 Azure 门户、PowerShell 或 Azure CLI。 你还可以使用 Blob 存储 SDK 之一列出 Blob 的版本。
若要在 Azure 门户中列出 blob 的版本,请执行以下操作:
在门户中导航到你的存储帐户,然后导航到包含 blob 的容器。
选择要列出其版本的 blob。
选择“版本”选项卡以显示 blob 的版本。
打开“显示已删除的版本”按钮,以显示软删除的版本。 如果为存储帐户启用了 Blob 软删除,则仍在软删除保留间隔内的任何软删除版本都将显示在列表中。
若要使用 PowerShell 列出 blob 的版本,请调用 Get-AzStorageBlob 命令并使用 -IncludeVersion
参数:
$account = Get-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account>
$ctx = $account.Context
$container = "<container-name>"
$blobs = Get-AzStorageBlob -Container $container -Prefix "ab" -IncludeVersion -Context $ctx
foreach($blob in $blobs)
{
Write-Host $blob.Name
Write-Host $blob.VersionId
Write-Host $blob.IsLatestVersion
}
若要使用 Azure CLI 列出 blob 的版本,请调用 az storage blob directory list 命令并使用 --include v
参数:
storageAccount="<storage-account>"
containerName="<container-name>"
az storage blob list \
--container-name $containerName \
--prefix "ab" \
--query "[[].name, [].versionId]" \
--account-name $storageAccount \
--include v \
--auth-mode login \
--output tsv
后续步骤