首页 > 解决方案 > 使用特定条件重命名 azure blob

问题描述

我有一个带有测试容器的存储帐户,这个容器包含 24 个文件夹,每个文件夹都包含n一些 blob。我想要的是将图 1 中的所有文件夹和子 blob 重命名为与图 2 中的完全相同。

在此处输入图像描述 在此处输入图像描述

我用过这个重命名脚本: 如何使用 powershell 重命名 blob 文件

但是上面的脚本对一两个 blob 很有用,而且这个脚本不会重命名文件夹(这可以通过将 blob 复制到新位置来解决),在我的例子中,我有nblob,我试图用它来解决:

$textinfo = (Get-Culture).TextInfo
$text2=($textinfo.ToTitleCase($text)).Split(" ")

但这也无济于事,因为它将exchangerate重命名为Exchangerate而不是ExchangeRate(这是真正的要求)。我想到了这个:

foreach($file in $text)
    {
        Get-AzStorageBlob -Container 'test' -Context $storageContext -Blob $text|
        Rename-AzStorageBlob -NewName ''
    }

但是然后新名称(参数)我无法使其动态化。如何解决这个问题?

标签: azureazure-blob-storage

解决方案


如果要将 blob 从 重命名exchangerateExchangeRate,则没有自动方法。

为此,正如 Martin 所提到的,您最好有一个映射,您可以在其中查找exchangerate-> ExchangeRate(并且对于所有其他名称包含多个单词)。

否则,您的代码不知道新 blob 名称中的字母是否应为大写。


推荐阅读