本文内容
Blob 索引标记使用键值标记属性对存储帐户中的数据进行分类。 这些标记会自动索引,并作为可搜索的多维索引公开,便于你轻松查找数据。 本文介绍了如何使用 blob 索引标记来设置、获取和查找数据。
要详细了解此功能以及已知问题和限制,请参阅通过 Blob 索引标记管理和查找 Azure Blob 数据 。
此任务可由存储 Blob 数据所有者 执行,也可由已通过自定义 Azure 角色获得 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Azure 资源提供商操作 权限的安全主体来执行。
在 Azure 门户 中,选择你的存储帐户。
导航到“数据存储”下的“容器”选项,然后选择你的容器 。
选择“上传”按钮,并浏览本地文件系统,找到要作为块 blob 上传的文件。
展开“高级”下拉列表,然后转到“Blob 索引标记”部分 。
输入要应用于数据的键/值 Blob 索引标记。
选择“上传”按钮以上传 Blob。
运行 Connect-AzAccount
命令以登录 Azure 订阅,并按照屏幕上的说明操作。
Connect-AzAccount -Environment AzureChinaCloud
如果你的标识关联到多个订阅,请设置你的活动订阅。 然后,获取存储帐户上下文。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
使用 Set-AzStorageBlobContent
命令上传 blob。 使用 -Tag
参数设置标记。
$containerName = "myContainer"
$file = "C:\demo-file.txt"
Set-AzStorageBlobContent -File $file -Container $containerName -Context $ctx -Tag @{"tag1" = "value1"; "tag2" = "value2" }
如果在本地安装了 Azure CLI,请打开命令控制台应用程序,例如 Windows PowerShell。
安装 storage-preview
扩展。
az extension add -n storage-preview
如果在本地使用 Azure CLI,请运行 login 命令。
az login
如果你的标识已关联到多个订阅,请将你的活动订阅设置为存储帐户的订阅。
az account set --subscription <subscription-id>
将 <subscription-id>
占位符值替换为你的订阅 ID。
使用 az storage blob upload
命令上传 blob。 使用 --tags
参数设置标记。
az storage blob upload --account-name mystorageaccount --container-name myContainer --name demo-file.txt --file C:\demo-file.txt --tags tag1=value1 tag2=value2 --auth-mode login
获取 Blob 索引标记的操作可由存储 Blob 数据所有者 执行,也可由已通过自定义 Azure 角色获得 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read
Azure 资源提供商操作 权限的安全主体来执行。
设置和更新 Blob 索引标记的操作可由存储 Blob 数据所有者 执行,也可由已通过自定义 Azure 角色获得 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Azure 资源提供商操作 权限的安全主体来执行。
在 Azure 门户 中,选择存储帐户。
导航到“数据存储”下的“容器”选项,选择你的容器 。
从所选容器的 Blob 列表中选择你的 Blob。
Blob 概览选项卡将显示 Blob 的属性,包括任何“Blob 索引标记”。
可以获取、设置、修改或删除 Blob 的任何键/值索引标记。
选择“保存”按钮以确认对 Blob 所做的任何更新。
运行 Connect-AzAccount
命令以登录 Azure 订阅,并按照屏幕上的说明操作。
Connect-AzAccount -Environment AzureChinaCloud
如果你的标识关联到多个订阅,请设置你的活动订阅。 然后,获取存储帐户上下文。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
若要获取 blob 的标记,请使用 Get-AzStorageBlobTag
命令,并将 -Blob
参数设置为 blob 的名称。
$containerName = "myContainer"
$blobName = "myBlob"
Get-AzStorageBlobTag -Context $ctx -Container $containerName -Blob $blobName
若要设置 blob 的标记,请使用 Set-AzStorageBlobTag
命令。 将 -Blob
参数设置为 blob 的名称,并将 -Tag
参数设置为名称和值对的集合。
$containerName = "myContainer"
$blobName = "myBlob"
$tags = @{"tag1" = "value1"; "tag2" = "value2" }
Set-AzStorageBlobTag -Context $ctx -Container $containerName -Blob $blobName -Tag $tags
如果在本地安装了 Azure CLI,请打开命令控制台应用程序,例如 Windows PowerShell。
安装 storage-preview
扩展。
az extension add -n storage-preview
如果在本地使用 Azure CLI,请运行 login 命令。
az login
如果你的标识已关联到多个订阅,请将你的活动订阅设置为存储帐户的订阅。
az account set --subscription <subscription-id>
将 <subscription-id>
占位符值替换为你的订阅 ID。
若要获取 blob 的标记,请使用 az storage blob tag list
命令,并将 --name
参数设置为 blob 的名称。
az storage blob tag list --account-name mystorageaccount --container-name myContainer --name demo-file.txt --auth-mode login
若要设置 blob 的标记,请使用 az storage blob tag set
命令。 将 --name
参数设置为 blob 的名称,并将 --tags
参数设置为名称和值对的集合。
az storage blob tag set --account-name mystorageaccount --container-name myContainer --name demo-file.txt --tags tag1=value1 tag2=value2 --auth-mode login
此任务可由存储 Blob 数据所有者 执行,也可由已通过自定义 Azure 角色获得 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action
Azure 资源提供商操作 权限的安全主体来执行。
注意
不能使用索引标记来检索以前的版本。 以前版本的标记不会传递给 blob 索引引擎。 有关详细信息,请参阅条件和已知问题 。
在 Azure 门户中,“Blob 索引标记”筛选器会自动应用 @container
参数来限制所选容器的范围。 如果希望在整个存储帐户中筛选和查找带标记的数据,请使用我们的 REST API、SDK 或工具。
在 Azure 门户 中,选择存储帐户。
导航到“数据存储”下的“容器”选项,选择你的容器 。
选择“添加筛选器”按钮,在所选容器内进行筛选。
输入 Blob 索引标记键和标记值。
选择“添加筛选器”按钮,以添加更多标记筛选器(最多 10 个)。
运行 Connect-AzAccount
命令以登录 Azure 订阅,并按照屏幕上的说明操作。
Connect-AzAccount -Environment AzureChinaCloud
如果你的标识关联到多个订阅,请设置你的活动订阅。 然后,获取存储帐户上下文。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
若要查找与特定 blob 标记相匹配的所有 blob,请使用 Get-AzStorageBlobByTag
命令。
$filterExpression = """tag1""='value1'"
Get-AzStorageBlobByTag -TagFilterSqlExpression $filterExpression -Context $ctx
若要仅查找特定容器中的 blob,请将容器名称包括在 -TagFilterSqlExpression
中。
$filterExpression = "@container='myContainer' AND ""tag1""='value1'"
Get-AzStorageBlobByTag -TagFilterSqlExpression $filterExpression -Context $ctx
如果在本地安装了 Azure CLI,请打开命令控制台应用程序,例如 Windows PowerShell。
安装 storage-preview
扩展。
az extension add -n storage-preview
如果在本地使用 Azure CLI,请运行 login 命令。
az login
如果你的标识已关联到多个订阅,请将你的活动订阅设置为存储帐户的订阅。
az account set --subscription <subscription-id>
将 <subscription-id>
占位符值替换为你的订阅 ID。
若要查找与特定 blob 标记相匹配的所有 blob,请使用 az storage blob filter
命令。
az storage blob filter --account-name mystorageaccount --tag-filter """tag1""='value1' and ""tag2""='value2'" --auth-mode login
若要仅查找特定容器中的 blob,请将容器名称包括在 --tag-filter
参数中。
az storage blob filter --account-name mystorageaccount --tag-filter """@container""='myContainer' and ""tag1""='value1' and ""tag2""='value2'" --auth-mode login
后续步骤