Blob tag
Author: V | 2025-04-25
az storage blob tag: Manage blob tags. Extension Preview az storage blob tag list: Get tags on a blob or specific blob version, or snapshot. Extension Preview az storage blob tag set: Set tags on a blob or specific blob version, but not snapshot. Extension Preview az storage blob undelete: Restore soft deleted blob or snapshot. Core GA
Blobs with Index Tags – How to identify the blobs with blob index tags
A blob, use the Set-AzStorageBlobTag command. Set the -Blob parameter to the name of the blob, and set the -Tag parameter to a collection of name and value pairs.$containerName = "myContainer"$blobName = "myBlob" $tags = @{"tag1" = "value1"; "tag2" = "value2" }Set-AzStorageBlobTag -Context $ctx -Container $containerName -Blob $blobName -Tag $tagsAzure CLIOpen the Azure Cloud Shell, or if you've installed the Azure CLI locally, open a command console application such as Windows PowerShell.Install the storage-preview extension.az extension add -n storage-previewIf you're using Azure CLI locally, run the login command.If your identity is associated with more than one subscription, then set your active subscription to subscription of the storage account.">az account set --subscription Replace the placeholder value with the ID of your subscription.To get the tags of a blob, use the az storage blob tag list command and set the --name parameter to the name of the blob.az storage blob tag list --account-name mystorageaccount --container-name myContainer --name demo-file.txt --auth-mode loginTo set the tags of a blob, use the az storage blob tag set command. Set the --name parameter to the name of the blob, and set the --tags parameter to a collection of name and value pairs.az storage blob tag set --account-name mystorageaccount --container-name myContainer --name demo-file.txt --tags tag1=value1 tag2=value2 --auth-mode loginAzCopySee Replace index tagsFilter and find data with blob index tagsThis task can be performed by a Storage Blob Data Owner or a security principal that has been given permission to the Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action Azure resource provider operation via a custom Azure role.NoteYou can't use index tags to retrieve previous versions. Tags for previous versions aren't passed to the blob index engine. For more information, see Conditions and known issues.PortalWithin the Azure portal, the blob index tags filter automatically applies the @container parameter to scope your selected container. If you wish to filter and find tagged data across your entire storage account, use our REST API, SDKs, or tools.In the Azure portal, select your storage account.Navigate to the Containers option under Data storage, select your container.Select the Blob Index tags filter button to filter within the selected container.Enter a blob index tag
Blobs with Index Tags - How to identify the blobs with blob index tags
Key and tag value.Select the Blob Index tags filter button to add additional tag filters (up to 10).:::image type="content" source="media/storage-blob-index-concepts/blob-index-tag-filter-within-container.png" alt-text="Screenshot of the Azure portal showing how to Filter and find tagged blobs using index tags":::PowerShellSign in to your Azure subscription with the Connect-AzAccount command and follow the on-screen directions.If your identity is associated with more than one subscription, then set your active subscription. Then, get the storage account context.Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context ">$context = Get-AzSubscription -SubscriptionId subscription-id>Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context To find all blobs that match a specific blob tag, use the Get-AzStorageBlobByTag command.$filterExpression = """tag1""='value1'"Get-AzStorageBlobByTag -TagFilterSqlExpression $filterExpression -Context $ctxTo find blobs only in a specific container, include the container name in the -TagFilterSqlExpression.$filterExpression = "@container='myContainer' AND ""tag1""='value1'"Get-AzStorageBlobByTag -TagFilterSqlExpression $filterExpression -Context $ctxAzure CLIOpen the Azure Cloud Shell, or if you've installed the Azure CLI locally, open a command console application such as Windows PowerShell.Install the storage-preview extension.az extension add -n storage-previewIf you're using Azure CLI locally, run the login command.If your identity is associated with more than one subscription, then set your active subscription to subscription of the storage account.">az account set --subscription Replace the placeholder value with the ID of your subscription.To find all blobs that match a specific blob tag, use the az storage blob filter command.az storage blob filter --account-name mystorageaccount --tag-filter """tag1""='value1' and ""tag2""='value2'" --auth-mode loginTo find blobs only in a specific container, include the container name in the --tag-filter parameter.az storage blob filter --account-name mystorageaccount --tag-filter """@container""='myContainer' and ""tag1""='value1' and ""tag2""='value2'" --auth-mode loginAzCopyN/ANext stepsLearn more about blob index tags, see Manage and find Azure Blob data with blob index tagsLearn more about lifecycle management, see Manage the Azure Blob Storage lifecycleLearn more about how to set index tags on objects at scale across multiple storage accounts. See What is Azure Storage Actions?Blob Tag - footy4kids.co.uk
4K support. Oxenfree (Night School Studio): 15 January This super natural thriller adventure follows the story of a group of friends who open a “ghostly rift” while partying on an old military island. The game is being developed by a team who has worked on Telltale and Disney titles. The Deadly Tower of Monsters (ACE Team): 19 January ACE Team’s super-meta b-movie title The Deadly Tower of Monsters will be launching itself upon the face of the world in January with a PC price tag of $15 (or equivalent currency). Read more about The Deadly Tower Of Monsters A Boy and his Blob (Majesco): 19 January Majesco bring a re-imagined version of the classic NES title to the PC which was released on the Wii and is being ported by Abstraction Games. Feed the blob jelly beans and he’ll transform into useful objects to help you progress through the levels. Blade & Soul (NCSoft) : 19 January Blade & Soul is an MMORPG being developed by NCSoft. The combat is martial arts inspired with combo fight moves and a ‘downed’ mechanic enabling players to recover from near death. Usual character customisation and quest based adventures provide the PvE aspect and there is a PvP mode later in the game. Read more about Blade & Soul Gemini: Heroes Reborn (Phosphor Games): 19 January Gemini: Heroes Reborn is a first-person, action-adventure in which players assume the role of Cassandra, an ordinary college student on a journey of discovery to unlock her incredible. az storage blob tag: Manage blob tags. Extension Preview az storage blob tag list: Get tags on a blob or specific blob version, or snapshot. Extension Preview az storage blob tag set: Set tags on a blob or specific blob version, but not snapshot. Extension Preview az storage blob undelete: Restore soft deleted blob or snapshot. Core GAAzure Blob Storage - Get Blob by Tags is not working
Title description titleSuffix author ms.author ms.date ms.service ms.topic ms.devlang ms.custom Use blob index tags to manage and find data on Azure Blob Storage See examples of how to use blob index tags to categorize, manage, and query for blob objects. Azure Storage normesta normesta 07/21/2022 azure-blob-storage how-to csharp devx-track-csharp, devx-track-azurepowershell, devx-track-azurecli Use blob index tags to manage and find data on Azure Blob StorageBlob index tags categorize data in your storage account using key-value tag attributes. These tags are automatically indexed and exposed as a searchable multi-dimensional index to easily find data. This article shows you how to set, get, and find data using blob index tags.To learn more about this feature along with known issues and limitations, see Manage and find Azure Blob data with blob index tags.Upload a new blob with index tagsThis task can be performed by a Storage Blob Data Owner or a security principal that has been given permission to the Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write Azure resource provider operation via a custom Azure role.PortalIn the Azure portal, select your storage account.Navigate to the Containers option under Data storage, and select your container.Select the Upload button and browse your local file system to find a file to upload as a block blob.Expand the Advanced dropdown and go to the Blob Index Tags section.Input the key/value blob index tags that you want applied to your data.Select the Upload button to upload the blob.:::image type="content" source="media/storage-blob-index-concepts/blob-index-upload-data-with-tags.png" alt-text="Screenshot of the Azure portal showing how to upload a blob with index tags.":::PowerShellSign in to your Azure subscription with the Connect-AzAccount command and follow the on-screen directions.If your identity is associated with more than one subscription, then set your active subscription. Then, get the storage account context.Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context ">$context = Get-AzSubscription -SubscriptionId subscription-id>Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context Upload a blob by using the Set-AzStorageBlobContent command. Set tags by using the -Tag parameter.$containerName = "myContainer"$file = "C:\demo-file.txt"Set-AzStorageBlobContent -File $file -Container $containerName -Context $ctx -Tag @{"tag1" = "value1"; "tag2" = "value2" }Azure CLIOpen the Azure Cloud Shell, or if you've installed the AzureTAG GAMES FOR KIDS: BLOB TAG! - The Inspired
With blob index tagsSet Blob Tags (REST API)Get tags[!INCLUDE storage-dev-guide-auth-get-blob-tags]You can get tags by using either of the following methods:GetTagsGetTagsAsyncThe following example performs this task. tagsResponse = await blobClient.GetTagsAsync(); foreach (KeyValuePair tag in tagsResponse.Value.Tags) { Console.WriteLine($"{tag.Key}={tag.Value}"); }}">public static async Task GetTags(BlobClient blobClient){ ResponseGetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync(); foreach (KeyValuePairstring, string> tag in tagsResponse.Value.Tags) { Console.WriteLine($"{tag.Key}={tag.Value}"); }}Filter and find data with blob index tags[!INCLUDE storage-dev-guide-auth-filter-blob-tags]NoteYou can't use index tags to retrieve previous versions. Tags for previous versions aren't passed to the blob index engine. For more information, see Conditions and known issues.You can find data by using either of the following methods:FindBlobsByTagsFindBlobsByTagsAsyncThe following example finds all blobs tagged with a date that falls between a specific range.= '2020-04-20' AND ""Date"" blobs = new List(); await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query)) { blobs.Add(taggedBlobItem); } foreach (var filteredBlob in blobs) { Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " + $"BlobName= {filteredBlob.BlobName}"); }}">public static async Task FindBlobsbyTags(BlobServiceClient serviceClient){ string query = @"""Date"" >= '2020-04-20' AND ""Date"" ; // Find Blobs given a tags query Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine); ListTaggedBlobItem> blobs = new ListTaggedBlobItem>(); await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query)) { blobs.Add(taggedBlobItem); } foreach (var filteredBlob in blobs) { Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " + $"BlobName= {filteredBlob.BlobName}"); }}ResourcesTo learn more about how to use index tags to manage and find data using the Azure Blob Storage client library for .NET, see the following resources.REST API operationsThe Azure SDK for .NET contains libraries that build on top of the Azure REST API,Blob Tag - perfect-partygames.com
Commits (having fewer than two parents, having one commit serve as both parents, or having one parent as the ancestor of the other.) If such merge commits have no file changes, they can be pruned. The default (auto) is to only prune empty merge commits which become degenerate (not which started as such).--no-ffEven if the first parent is or becomes an ancestor of another parent, do not prune it. This modifies how --prune-degenerate behaves, and may be useful in projects who always use merge --no-ff.Generic callback code snippets--filename-callback Python code body for processing filenames; see the section called “Callbacks”.--message-callback Python code body for processing messages (both commit messages and tag messages); see the section called “Callbacks”.--name-callback Python code body for processing names of people; see the section called “Callbacks”.--email-callback Python code body for processing emails addresses; see the section called “Callbacks”.--refname-callback Python code body for processing refnames; see the section called “Callbacks”.--blob-callback Python code body for processing blob objects; see the section called “Callbacks”.--commit-callback Python code body for processing commit objects; see the section called “Callbacks”.--tag-callback Python code body for processing tag objects; see the section called “Callbacks”.--reset-callback Python code body for processing reset objects; see the section called “Callbacks”.Location to filter from/toNoteSpecifying alternate source or target locations implies --partial except that the normal default for --replace-refs is used. However, unlike normal uses of --partial, this doesn’t risk mixing old and new history since the old and new histories are in different repositories.--source Git repository to read from--target Git repository to overwrite with filtered historyMiscellaneous options--help, -hShow a help message and exit.--force, -fIgnore fresh clone checks and rewrite history (an irreversible operation, especially since it by default ends with an immediate pruning of reflogs and old objects). See the section called “Fresh Clone Safety Check and --force”. Note that when cloning repos on a local filesystem, it is better to pass --no-local to git clone than passing --force to git-filter-repo.--partialDo a partial history rewrite, resulting in the mixture of old and new history. This implies a default of update-no-add for --replace-refs, disables rewriting refs/remotes/origin/* to refs/heads/*, disables removing of the origin remote, disables removing unexported refs, disables expiring the reflog, and disables the automatic post-filter gc. Also, this modifies --tag-rename and --refname-callback options such that instead of replacing old refs with new refnames, it will instead create new refs and keep the old ones around. Use with caution.--refs Limit historyAzure blob index tags- Find blob by index tags using rest API
Path # (except when "src" appears at the toplevel). return None elif filename.startswith(b"tools/"): # Rename tools/ -> scripts/misc/ return b"scripts/misc/" + filename[6:] else: # Keep the filename and do not rename it return filename 'In contrast, the blob, reset, tag, and commit callbacks are not expected to return a value, but are instead expected to modify the object passed in. Major fields for these objects are (subject to API backward compatibility caveats mentioned previously):Blob: original_id (original hash) and dataReset: ref (name of reference) and from_ref (hash or integer mark)Tag: ref, from_ref, original_id, tagger_name, tagger_email, tagger_date, messageCommit: branch, original_id, author_name, author_email, author_date, committer_name, committer_email, committer_date, message, file_changes (list of FileChange objects, each containing a type, filename, mode, and blob_id), parents (list of hashes or integer marks)An example of each:git filter-repo --blob-callback ' if len(blob.data) > 25: # Mark this blob for removal from all commits blob.skip() else: blob.data = blob.data.replace(b"Hello", b"Goodbye") 'git filter-repo --reset-callback 'reset.ref = reset.ref.replace(b"master", b"dev")'git filter-repo --tag-callback ' if tag.tagger_name == b"Jim Williams": # Omit this tag tag.skip() else: tag.message = tag.message + b"\n\nTag of %s by %s on %s" % (tag.ref, tag.tagger_email, tag.tagger_date)'git filter-repo --commit-callback ' # Remove executable files with three 6s in their name (including # from leading directories). # Also, undo deletion of sources/foo/bar.txt (change types are # either b"D" (deletion) or b"M" (add or modify); renames are # handled by deleting the old file and adding a new one) commit.file_changes = [ change for change in commit.file_changes if not (change.mode == b"100755" and change.filename.count(b"6") == 3) and not (change.type == b"D" and change.filename == b"sources/foo/bar.txt")] # Mark all .sh files as executable; modes in git are always one of # 100644 (normal file), 100755 (executable), 120000 (symlink), or # 160000 (submodule) for change in commit.file_changes: if change.filename.endswith(b".sh"): change.mode = b"100755" 'InternalsYou probably don’t need to read this section unless you are just very curious or you are trying to do a very complex history rewrite.How filter-repo worksRoughly, filter-repo works by runninggit fast-export | filter | git fast-import where filter-repo not only launches the whole pipeline but also serves as the filter in the middle. However, filter-repo does a few additional things on top in order to make it into a well-rounded filtering tool. A sequence that more accurately reflects what filter-repo runs is:Verify we’re in a fresh clonegit fetch -u . refs/remotes/origin/*:refs/heads/*git remote rm origingit fast-export --show-original-ids --reference-excluded-parents --fake-missing-tagger --signed-tags=strip --tag-of-filtered-object=rewrite --use-done-feature --no-data. az storage blob tag: Manage blob tags. Extension Preview az storage blob tag list: Get tags on a blob or specific blob version, or snapshot. Extension Preview az storage blob tag set: Set tags on a blob or specific blob version, but not snapshot. Extension Preview az storage blob undelete: Restore soft deleted blob or snapshot. Core GA Download blobs: Download blobs by using strings, streams, and file paths. Find blobs using tags: Set and retrieve tags as well as use tags to find blobs. List blobs: List blobs
Azure blob index tags- upload blob with index tags using rest API
Statisticsthread count information (current, peak and daemon thread counts)job-specific metricsUser-defined MetricsUser-defined metrics are actually a subset ofjob metrics. What distinguishes them fromregular job-specific metrics is exactly what their name implies: theyare not built-in, but defined when processing pipelines are written.Since user-defined metrics are also job metrics, they will have all thetags job metrics have. They also have an extra tag, called user whichis of type boolean and is set to true.Due to the extra tag user-defined metrics have it’s not possible forthem to overwrite a built-in metric, even if they have the exactsame name.Let’s see how one would go about defining such metrics. For example ifyou would like to monitor your filtering step you could write code likethis:p.readFrom(source) .filter(l -> { boolean pass = l % 2 == 0; if (!pass) { Metrics.metric("dropped").increment(); } Metrics.metric("total").increment(); return pass; }) .writeTo(sink);User-defined metrics can be used anywhere in pipeline definitions wherecustom code can be added. This means (just to name the most importantones): filtering, mapping and flat-mapping functions, variousconstituent functions of aggregations (accumulate, create, combine,deduct, export & finish), key extraction function when grouping, incustom batch sources,custom stream sources,custom sinks, processors and so on.Exposing MetricsThe following are the tools and interfaces to expose the metrics tothe outside world:Management CenterJMXDiagnostics (see here)PrometheusJob APIManagement CenterManagement Center receives the metrics used for building its viewabout the Hazelcast cluster from the metrics system.The members collect their metrics with the frequency defined withcollection-frequency-seconds, which is by default once in every 5 seconds.Then it saves the collected metrics into a blob stored in an in-memory buffer.The blob then is retained for the time configured in the retention-seconds under themanagement-center configuration block.This is also 5 seconds by default, which means there is at most one blob stored by default.Management Center periodically reads out the metrics from this buffer,which frees up the heap occupied by the blob once it is consumed.As mentioned earlier, the client metrics are also stored in theseblobs on the member side with timestamps assigned to them on the client side.Over JMXHazelcast exposes all its metrics using the JVM’s standard JMX interface.You can use tools such as Java Mission Control or JConsole todisplay them.The Hazelcast metrics are exposed under com.hazelcast/$INSTANCE_NAME/Metrics where$INSTANCE_NAME is the name of the member or client instance to which the JMX clientis connected.And the Jet engine related beans are stored undercom.hazelcast.jet/Metrics// node and the various tagsthey have form further sub-nodes in the resulting tree structure.PrometheusPrometheus isManage and find Azure Blob data with blob index tags
These are specified, literal: is assumed.If multiple matches are found, all are replaced.globs and regexes are applied to the entire file, but without any special flags turned on. Some folks may be interested in adding (?m) to the regex to turn on MULTILINE mode, so that ^ and $ match the beginning and ends of lines rather than the beginning and end of file. See for details.See also the --blob-callback from the section called “Callbacks”.Updating commit/tag messagesIf you want to modify commit or tag messages, you can do so with the same syntax as --replace-text, explained above. For example, with a file named expressions.txt containingfoo==>barthen runninggit filter-repo --replace-message expressions.txtwill replace foo in commit or tag messages with bar.See also the --message-callback from the section called “Callbacks”.Refname based filteringTo rename tags, use --tag-rename, e.g.:git filter-repo --tag-rename foo:barThis will rename any tags starting with foo to now start with bar. Either side of the colon could be blank, e.g.git filter-repo --tag-rename '':'my-module-'For more general refname modification, see --refname-callback from the section called “Callbacks”.User and email based filteringTo modify username and emails of commits, you can create a mailmap file in the format accepted by git-shortlog(1). For example, if you have a file named my-mailmap you can rungit filter-repo --mailmap my-mailmapand if the current contents of that file are as follows (if the specified mailmap file is version controlled, historical versions of the file are ignored):Name For User New Name And New Name And Old Name And then we can update username and/or emails based on the specified mapping.See also the --name-callback and --email-callback from the section called “Callbacks”.Parent rewritingTo replace $commit_A with $commit_B (e.g. make all commits which had $commit_A as a parent instead have $commit_B for that parent), and rewrite history to make it permanent:git replace $commit_A $commit_Bgit filter-repo --forceTo create a new commit with the same contents as $commit_A except with different parent(s) and then replace $commit_A with the new commit, and rewrite history to make it permanent:git replace --graft $commit_A $new_parent_or_parentsgit filter-repo --forceThe reason to specify --force is two-fold: filter-repo will error out if no arguments are specified, and the new graft commit would otherwise trigger the not-a-fresh-clone check.Partial history rewritesTo rewrite the history on just one branch (which may cause it to no longer share any common history with other branches), use --refs. For example, to remove a file named extraneous.txt from the master branch:git filter-repo --invert-paths --path. az storage blob tag: Manage blob tags. Extension Preview az storage blob tag list: Get tags on a blob or specific blob version, or snapshot. Extension Preview az storage blob tag set: Set tags on a blob or specific blob version, but not snapshot. Extension Preview az storage blob undelete: Restore soft deleted blob or snapshot. Core GA Download blobs: Download blobs by using strings, streams, and file paths. Find blobs using tags: Set and retrieve tags as well as use tags to find blobs. List blobs: List blobsAzure Blob Storage - Find Blobs By Tags - Stack Overflow
A Blob Schools CollectionFull collection of Blob scenes with a Schools theme, includes : Blob Assembly (colour & b&w), Blob Behaviour (4 colour & 2 b&w), Blob Bullying (colour & b&w), Blob Choir (colour & b&w), Blob Classroom (colour & b&w), Blob Coffee Break (colour & b&w), Blob Computer (colour & b&w), Blob Exams (colour & b&w), Blob First Day (colour & b&w), Blob Friends (colour & b&w), Blob Hometime (colour & b&w), Blob Lessons (colour & b&w), Blob Meals, Blob Parents Evening, Blob Playground (colour & b&w), Blob Prayer (colour & b&w), Blob Pupils (colour & b&w), Blob School (colour & b&w), Blob Sports Day (colour & b&w), Blob Study Tree (colour & b&w), Blob Swimming (colour & b&w), Blob Talents (colour & b&w).Black & White & Colour versions (where available) all includedA total of 47 Blob Scenes in this pack (including black & white and colour variants)* the purchased images come without watermark and in full resolutionComments
A blob, use the Set-AzStorageBlobTag command. Set the -Blob parameter to the name of the blob, and set the -Tag parameter to a collection of name and value pairs.$containerName = "myContainer"$blobName = "myBlob" $tags = @{"tag1" = "value1"; "tag2" = "value2" }Set-AzStorageBlobTag -Context $ctx -Container $containerName -Blob $blobName -Tag $tagsAzure CLIOpen the Azure Cloud Shell, or if you've installed the Azure CLI locally, open a command console application such as Windows PowerShell.Install the storage-preview extension.az extension add -n storage-previewIf you're using Azure CLI locally, run the login command.If your identity is associated with more than one subscription, then set your active subscription to subscription of the storage account.">az account set --subscription Replace the placeholder value with the ID of your subscription.To get the tags of a blob, use the az storage blob tag list command and set the --name parameter to the name of the blob.az storage blob tag list --account-name mystorageaccount --container-name myContainer --name demo-file.txt --auth-mode loginTo set the tags of a blob, use the az storage blob tag set command. Set the --name parameter to the name of the blob, and set the --tags parameter to a collection of name and value pairs.az storage blob tag set --account-name mystorageaccount --container-name myContainer --name demo-file.txt --tags tag1=value1 tag2=value2 --auth-mode loginAzCopySee Replace index tagsFilter and find data with blob index tagsThis task can be performed by a Storage Blob Data Owner or a security principal that has been given permission to the Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action Azure resource provider operation via a custom Azure role.NoteYou can't use index tags to retrieve previous versions. Tags for previous versions aren't passed to the blob index engine. For more information, see Conditions and known issues.PortalWithin the Azure portal, the blob index tags filter automatically applies the @container parameter to scope your selected container. If you wish to filter and find tagged data across your entire storage account, use our REST API, SDKs, or tools.In the Azure portal, select your storage account.Navigate to the Containers option under Data storage, select your container.Select the Blob Index tags filter button to filter within the selected container.Enter a blob index tag
2025-04-19Key and tag value.Select the Blob Index tags filter button to add additional tag filters (up to 10).:::image type="content" source="media/storage-blob-index-concepts/blob-index-tag-filter-within-container.png" alt-text="Screenshot of the Azure portal showing how to Filter and find tagged blobs using index tags":::PowerShellSign in to your Azure subscription with the Connect-AzAccount command and follow the on-screen directions.If your identity is associated with more than one subscription, then set your active subscription. Then, get the storage account context.Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context ">$context = Get-AzSubscription -SubscriptionId subscription-id>Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context To find all blobs that match a specific blob tag, use the Get-AzStorageBlobByTag command.$filterExpression = """tag1""='value1'"Get-AzStorageBlobByTag -TagFilterSqlExpression $filterExpression -Context $ctxTo find blobs only in a specific container, include the container name in the -TagFilterSqlExpression.$filterExpression = "@container='myContainer' AND ""tag1""='value1'"Get-AzStorageBlobByTag -TagFilterSqlExpression $filterExpression -Context $ctxAzure CLIOpen the Azure Cloud Shell, or if you've installed the Azure CLI locally, open a command console application such as Windows PowerShell.Install the storage-preview extension.az extension add -n storage-previewIf you're using Azure CLI locally, run the login command.If your identity is associated with more than one subscription, then set your active subscription to subscription of the storage account.">az account set --subscription Replace the placeholder value with the ID of your subscription.To find all blobs that match a specific blob tag, use the az storage blob filter command.az storage blob filter --account-name mystorageaccount --tag-filter """tag1""='value1' and ""tag2""='value2'" --auth-mode loginTo find blobs only in a specific container, include the container name in the --tag-filter parameter.az storage blob filter --account-name mystorageaccount --tag-filter """@container""='myContainer' and ""tag1""='value1' and ""tag2""='value2'" --auth-mode loginAzCopyN/ANext stepsLearn more about blob index tags, see Manage and find Azure Blob data with blob index tagsLearn more about lifecycle management, see Manage the Azure Blob Storage lifecycleLearn more about how to set index tags on objects at scale across multiple storage accounts. See What is Azure Storage Actions?
2025-04-05Title description titleSuffix author ms.author ms.date ms.service ms.topic ms.devlang ms.custom Use blob index tags to manage and find data on Azure Blob Storage See examples of how to use blob index tags to categorize, manage, and query for blob objects. Azure Storage normesta normesta 07/21/2022 azure-blob-storage how-to csharp devx-track-csharp, devx-track-azurepowershell, devx-track-azurecli Use blob index tags to manage and find data on Azure Blob StorageBlob index tags categorize data in your storage account using key-value tag attributes. These tags are automatically indexed and exposed as a searchable multi-dimensional index to easily find data. This article shows you how to set, get, and find data using blob index tags.To learn more about this feature along with known issues and limitations, see Manage and find Azure Blob data with blob index tags.Upload a new blob with index tagsThis task can be performed by a Storage Blob Data Owner or a security principal that has been given permission to the Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write Azure resource provider operation via a custom Azure role.PortalIn the Azure portal, select your storage account.Navigate to the Containers option under Data storage, and select your container.Select the Upload button and browse your local file system to find a file to upload as a block blob.Expand the Advanced dropdown and go to the Blob Index Tags section.Input the key/value blob index tags that you want applied to your data.Select the Upload button to upload the blob.:::image type="content" source="media/storage-blob-index-concepts/blob-index-upload-data-with-tags.png" alt-text="Screenshot of the Azure portal showing how to upload a blob with index tags.":::PowerShellSign in to your Azure subscription with the Connect-AzAccount command and follow the on-screen directions.If your identity is associated with more than one subscription, then set your active subscription. Then, get the storage account context.Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context ">$context = Get-AzSubscription -SubscriptionId subscription-id>Set-AzContext $context$storageAccount = Get-AzStorageAccount -ResourceGroupName "" -AccountName ""$ctx = $storageAccount.Context Upload a blob by using the Set-AzStorageBlobContent command. Set tags by using the -Tag parameter.$containerName = "myContainer"$file = "C:\demo-file.txt"Set-AzStorageBlobContent -File $file -Container $containerName -Context $ctx -Tag @{"tag1" = "value1"; "tag2" = "value2" }Azure CLIOpen the Azure Cloud Shell, or if you've installed the Azure
2025-04-05With blob index tagsSet Blob Tags (REST API)Get tags[!INCLUDE storage-dev-guide-auth-get-blob-tags]You can get tags by using either of the following methods:GetTagsGetTagsAsyncThe following example performs this task. tagsResponse = await blobClient.GetTagsAsync(); foreach (KeyValuePair tag in tagsResponse.Value.Tags) { Console.WriteLine($"{tag.Key}={tag.Value}"); }}">public static async Task GetTags(BlobClient blobClient){ ResponseGetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync(); foreach (KeyValuePairstring, string> tag in tagsResponse.Value.Tags) { Console.WriteLine($"{tag.Key}={tag.Value}"); }}Filter and find data with blob index tags[!INCLUDE storage-dev-guide-auth-filter-blob-tags]NoteYou can't use index tags to retrieve previous versions. Tags for previous versions aren't passed to the blob index engine. For more information, see Conditions and known issues.You can find data by using either of the following methods:FindBlobsByTagsFindBlobsByTagsAsyncThe following example finds all blobs tagged with a date that falls between a specific range.= '2020-04-20' AND ""Date"" blobs = new List(); await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query)) { blobs.Add(taggedBlobItem); } foreach (var filteredBlob in blobs) { Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " + $"BlobName= {filteredBlob.BlobName}"); }}">public static async Task FindBlobsbyTags(BlobServiceClient serviceClient){ string query = @"""Date"" >= '2020-04-20' AND ""Date"" ; // Find Blobs given a tags query Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine); ListTaggedBlobItem> blobs = new ListTaggedBlobItem>(); await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query)) { blobs.Add(taggedBlobItem); } foreach (var filteredBlob in blobs) { Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " + $"BlobName= {filteredBlob.BlobName}"); }}ResourcesTo learn more about how to use index tags to manage and find data using the Azure Blob Storage client library for .NET, see the following resources.REST API operationsThe Azure SDK for .NET contains libraries that build on top of the Azure REST API,
2025-04-22Path # (except when "src" appears at the toplevel). return None elif filename.startswith(b"tools/"): # Rename tools/ -> scripts/misc/ return b"scripts/misc/" + filename[6:] else: # Keep the filename and do not rename it return filename 'In contrast, the blob, reset, tag, and commit callbacks are not expected to return a value, but are instead expected to modify the object passed in. Major fields for these objects are (subject to API backward compatibility caveats mentioned previously):Blob: original_id (original hash) and dataReset: ref (name of reference) and from_ref (hash or integer mark)Tag: ref, from_ref, original_id, tagger_name, tagger_email, tagger_date, messageCommit: branch, original_id, author_name, author_email, author_date, committer_name, committer_email, committer_date, message, file_changes (list of FileChange objects, each containing a type, filename, mode, and blob_id), parents (list of hashes or integer marks)An example of each:git filter-repo --blob-callback ' if len(blob.data) > 25: # Mark this blob for removal from all commits blob.skip() else: blob.data = blob.data.replace(b"Hello", b"Goodbye") 'git filter-repo --reset-callback 'reset.ref = reset.ref.replace(b"master", b"dev")'git filter-repo --tag-callback ' if tag.tagger_name == b"Jim Williams": # Omit this tag tag.skip() else: tag.message = tag.message + b"\n\nTag of %s by %s on %s" % (tag.ref, tag.tagger_email, tag.tagger_date)'git filter-repo --commit-callback ' # Remove executable files with three 6s in their name (including # from leading directories). # Also, undo deletion of sources/foo/bar.txt (change types are # either b"D" (deletion) or b"M" (add or modify); renames are # handled by deleting the old file and adding a new one) commit.file_changes = [ change for change in commit.file_changes if not (change.mode == b"100755" and change.filename.count(b"6") == 3) and not (change.type == b"D" and change.filename == b"sources/foo/bar.txt")] # Mark all .sh files as executable; modes in git are always one of # 100644 (normal file), 100755 (executable), 120000 (symlink), or # 160000 (submodule) for change in commit.file_changes: if change.filename.endswith(b".sh"): change.mode = b"100755" 'InternalsYou probably don’t need to read this section unless you are just very curious or you are trying to do a very complex history rewrite.How filter-repo worksRoughly, filter-repo works by runninggit fast-export | filter | git fast-import where filter-repo not only launches the whole pipeline but also serves as the filter in the middle. However, filter-repo does a few additional things on top in order to make it into a well-rounded filtering tool. A sequence that more accurately reflects what filter-repo runs is:Verify we’re in a fresh clonegit fetch -u . refs/remotes/origin/*:refs/heads/*git remote rm origingit fast-export --show-original-ids --reference-excluded-parents --fake-missing-tagger --signed-tags=strip --tag-of-filtered-object=rewrite --use-done-feature --no-data
2025-04-22Statisticsthread count information (current, peak and daemon thread counts)job-specific metricsUser-defined MetricsUser-defined metrics are actually a subset ofjob metrics. What distinguishes them fromregular job-specific metrics is exactly what their name implies: theyare not built-in, but defined when processing pipelines are written.Since user-defined metrics are also job metrics, they will have all thetags job metrics have. They also have an extra tag, called user whichis of type boolean and is set to true.Due to the extra tag user-defined metrics have it’s not possible forthem to overwrite a built-in metric, even if they have the exactsame name.Let’s see how one would go about defining such metrics. For example ifyou would like to monitor your filtering step you could write code likethis:p.readFrom(source) .filter(l -> { boolean pass = l % 2 == 0; if (!pass) { Metrics.metric("dropped").increment(); } Metrics.metric("total").increment(); return pass; }) .writeTo(sink);User-defined metrics can be used anywhere in pipeline definitions wherecustom code can be added. This means (just to name the most importantones): filtering, mapping and flat-mapping functions, variousconstituent functions of aggregations (accumulate, create, combine,deduct, export & finish), key extraction function when grouping, incustom batch sources,custom stream sources,custom sinks, processors and so on.Exposing MetricsThe following are the tools and interfaces to expose the metrics tothe outside world:Management CenterJMXDiagnostics (see here)PrometheusJob APIManagement CenterManagement Center receives the metrics used for building its viewabout the Hazelcast cluster from the metrics system.The members collect their metrics with the frequency defined withcollection-frequency-seconds, which is by default once in every 5 seconds.Then it saves the collected metrics into a blob stored in an in-memory buffer.The blob then is retained for the time configured in the retention-seconds under themanagement-center configuration block.This is also 5 seconds by default, which means there is at most one blob stored by default.Management Center periodically reads out the metrics from this buffer,which frees up the heap occupied by the blob once it is consumed.As mentioned earlier, the client metrics are also stored in theseblobs on the member side with timestamps assigned to them on the client side.Over JMXHazelcast exposes all its metrics using the JVM’s standard JMX interface.You can use tools such as Java Mission Control or JConsole todisplay them.The Hazelcast metrics are exposed under com.hazelcast/$INSTANCE_NAME/Metrics where$INSTANCE_NAME is the name of the member or client instance to which the JMX clientis connected.And the Jet engine related beans are stored undercom.hazelcast.jet/Metrics// node and the various tagsthey have form further sub-nodes in the resulting tree structure.PrometheusPrometheus is
2025-04-16