删除 Azure Blob 存储中的“文件夹”

Ben

我想从我的 Azure Blob 存储帐户的容器中删除一个文件夹。这个包含 3 000 000 多个文件,使用 Azure 存储资源管理器是一个相当长的过程(1 000 个文件/5 分钟),所以我想知道是否可以一次删除一个文件夹。

我知道 Azure Blob 存储中没有“文件夹”,它更像是访问 blob 的虚拟路径,但是对于大量 blob 的批量删除,这是有问题的。

亚当·斯密 - Microsoft Azure

Ben 我建议使用这个 Powershell 脚本,允许一次删除 10,000 个:

这个 PowerShell 脚本旨在在 Azure Automatiom 中运行,通过一次处理 10,000 个 blob 的块来删除容器中的大量 blob。当 blob 的数量超过几千个时,一次删除每个 blob 的常用方法可能会在没有完成任务的情况下暂停。这可用于删除所有 blob(当提供的参数留存天数为 0 时),或在最后 rententionDays 天数内未修改的某些 blob。

脚本可以在这里下载:https : //gallery.technet.microsoft.com/Delete-large-number-of-97e04976

    <#
.Synopsis
  Deletes large number of blobs in a container of Storage account, which are older than x days

.DESCRIPTION
  This Runbook deletes huge number of blobs in a container, by processing them in chunks of 10,000 blobs at a time. When the number of blobs grow beyond a couple of thousands, the usual method of deleting each blob at a time may just get suspended without completing the task. 

.PARAMETER CredentialAssetName
    The Credential asset which contains the credential for connecting to subscription

.PARAMETER Subscription
    Name of the subscription attached to the credential in CredentialAssetName

.PARAMETER container
    Container name from which the blobs are to be deleted

.PARAMETER AzStorageName
    The Storage Name to which the container belong to

.PARAMETER retentionDays
    Retention days. Blobs older than these many days will be deleted. To delete all, use 0

.NOTES
   AUTHOR: Anurag Singh, MSFT
   LASTEDIT: March 30, 2016
#>

function delete-blobs
{   
    param (
        [Parameter(Mandatory=$true)] 
        [String]  $CredentialAssetName,

        [Parameter(Mandatory=$true)]
        [String] $Subscription,

        [Parameter(Mandatory=$true)] 
        [String] $container,

        [Parameter(Mandatory=$true)] 
        [String] $AzStorageName,

        [Parameter(Mandatory=$true)] 
        [Int] $retentionDays
    )

$Cred = Get-AutomationPSCredential -Name $CredentialAssetName
$Account = Add-AzureAccount -Credential $Cred

if(!$Account) 
{
    write-output "Connection to Azure Subscription using the Credential asset failed..."
    Break;
}

set-AzureSubscription -SubscriptionName $Subscription

$AzStorageKey = (Get-AzureStorageKey -StorageAccountName $AzStorageName).Primary
$context = New-AzureStorageContext -StorageAccountName $AzStorageName -StorageAccountKey $AzStorageKey


$blobsremoved = 0
$MaxReturn = 10000
$Total = 0
$Token = $Null
$TotalDel = 0
$dateLimit = (get-date).AddDays(-$retentionDays) 

try
{
    do
    {
        Write-Output "Retrieving blobs"
        $blobs = Get-AzureStorageBlob -Container $container -context $context -MaxCount $MaxReturn  -ContinuationToken $Token 
        $blobstodelete =  $blobs | where LastModified -LE $dateLimit
        $Total += $Blobs.Count
        Write-Output "$Total  total Retrieved blobs"

        $Token = $Blobs[$blobs.Count -1].ContinuationToken;

        if($Blobs.Length -le 0) 
        { 
            break;
        }

        if($blobstodelete.Length -le 0) 
        { 
            continue;
        }

        $TotalDel += $blobstodelete.Count

        $blobstodelete  | Remove-AzureStorageBlob -Force 

        Write-Output "$TotalDel  blobs deleted"
    }
    While ($Token -ne $Null)
}

catch 
{
    write-output $_
}

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除Azure Blob存储容器中的文件夹

来自分类Dev

从Azure门户删除Blob文件

来自分类Dev

Azure Blob 存储身份验证错误为子文件夹中的 blob 创建 SAS

来自分类Dev

如何删除Azure BLOB存储中的所有文件

来自分类Dev

为什么我的Azure Blob存储容器中存在重复的文件夹?

来自分类Dev

如何在Azure Blob存储中创建空文件夹

来自分类Dev

创建并上传到Azure Blob存储中的特定文件夹

来自分类Dev

从 Azure Blob 存储 -Swift 中检索图像文件夹

来自分类Dev

如何删除Azure文件存储文件夹中的所有文件?

来自分类Dev

Azure 数据工厂 - 从 Azure Blob 存储读取文件夹中的所有文件时记录文件名

来自分类Dev

从Azure存储帐户删除VM Blob

来自分类Dev

已删除的Blob的Azure存储账单

来自分类Dev

如何使用Node.js从Azure存储中删除文件夹

来自分类Dev

在C#中从Windows Azure删除Blob

来自分类Dev

用于 Blob 存储的 Azure 搜索 SDK - 删除文件

来自分类Dev

删除已删除用户拥有的Azure Blob存储中的只读文件

来自分类Dev

如何在Azure Storage Explorer中为Azure Blob存储帐户直接链接到Container(文件夹)

来自分类Dev

如何在CloudBlobContainer.ListBlobs()中使用prefix参数从Azure Blob存储中的虚拟文件夹获取文件

来自分类Dev

如何删除Microsoft Azure存储中的租用Blob

来自分类Dev

从 Azure 存储 Blob 中批量删除 'x' 天前的对象

来自分类Dev

根据将来的日期自动删除Azure中的Blob文件

来自分类Dev

如何使用AzureCLI按日期删除Azure Blob存储中的文件?

来自分类Dev

删除SQL Azure子文件夹中的报告

来自分类Dev

Azure Blob 存储部署:存储访问策略被删除

来自分类Dev

如何使用Python将文件夹递归上传到Azure Blob存储

来自分类Dev

Azure存储Blob容器Vituval文件夹图像在JAVA中下载

来自分类Dev

上传存储在Azure Blob存储中的文件

来自分类Dev

删除Azure VM时如何从存储Blob中删除“ bootdiagnostics”容器?

来自分类Dev

删除Azure VM时如何从存储Blob中删除“ bootdiagnostics”容器?

Related 相关文章

  1. 1

    删除Azure Blob存储容器中的文件夹

  2. 2

    从Azure门户删除Blob文件

  3. 3

    Azure Blob 存储身份验证错误为子文件夹中的 blob 创建 SAS

  4. 4

    如何删除Azure BLOB存储中的所有文件

  5. 5

    为什么我的Azure Blob存储容器中存在重复的文件夹?

  6. 6

    如何在Azure Blob存储中创建空文件夹

  7. 7

    创建并上传到Azure Blob存储中的特定文件夹

  8. 8

    从 Azure Blob 存储 -Swift 中检索图像文件夹

  9. 9

    如何删除Azure文件存储文件夹中的所有文件?

  10. 10

    Azure 数据工厂 - 从 Azure Blob 存储读取文件夹中的所有文件时记录文件名

  11. 11

    从Azure存储帐户删除VM Blob

  12. 12

    已删除的Blob的Azure存储账单

  13. 13

    如何使用Node.js从Azure存储中删除文件夹

  14. 14

    在C#中从Windows Azure删除Blob

  15. 15

    用于 Blob 存储的 Azure 搜索 SDK - 删除文件

  16. 16

    删除已删除用户拥有的Azure Blob存储中的只读文件

  17. 17

    如何在Azure Storage Explorer中为Azure Blob存储帐户直接链接到Container(文件夹)

  18. 18

    如何在CloudBlobContainer.ListBlobs()中使用prefix参数从Azure Blob存储中的虚拟文件夹获取文件

  19. 19

    如何删除Microsoft Azure存储中的租用Blob

  20. 20

    从 Azure 存储 Blob 中批量删除 'x' 天前的对象

  21. 21

    根据将来的日期自动删除Azure中的Blob文件

  22. 22

    如何使用AzureCLI按日期删除Azure Blob存储中的文件?

  23. 23

    删除SQL Azure子文件夹中的报告

  24. 24

    Azure Blob 存储部署:存储访问策略被删除

  25. 25

    如何使用Python将文件夹递归上传到Azure Blob存储

  26. 26

    Azure存储Blob容器Vituval文件夹图像在JAVA中下载

  27. 27

    上传存储在Azure Blob存储中的文件

  28. 28

    删除Azure VM时如何从存储Blob中删除“ bootdiagnostics”容器?

  29. 29

    删除Azure VM时如何从存储Blob中删除“ bootdiagnostics”容器?

热门标签

归档