-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathdeleteblobswithprefix
59 lines (46 loc) · 2.79 KB
/
deleteblobswithprefix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#The below PowerShell script helps to delete the blobs iterating through all the conatiner in a stroage account with Prefix
#Disclaimer
#By using the following materials or sample code you agree to be bound by the license terms below
#and the Microsoft Partner Program Agreement the terms of which are incorporated herein by this reference.
#These license terms are an agreement between Microsoft Corporation (or, if applicable based on where you
#are located, one of its affiliates) and you. Any materials (other than sample code) we provide to you
#are for your internal use only. Any sample code is provided for the purpose of illustration only and is
#not intended to be used in a production environment. We grant you a nonexclusive, royalty-free right to
#use and modify the sample code and to reproduce and distribute the object code form of the sample code,
#provided that you agree: (i) to not use Microsoft’s name, logo, or trademarks to market your software product
#in which the sample code is embedded; (ii) to include a valid copyright notice on your software product in
#which the sample code is embedded; (iii) to provide on behalf of and for the benefit of your subcontractors
#a disclaimer of warranties, exclusion of liability for indirect and consequential damages and a reasonable
#limitation of liability; and (iv) to indemnify, hold harmless, and defend Microsoft, its affiliates and
#suppliers from and against any third party claims or lawsuits, including attorneys fees, that arise or result
#from the use or distribution of the sample code."
# Connect to Azure
Connect-AzAccount
# Specify the Azure Storage account details
$storageAccountName = "SA name"
# Specify the prefix to delete blobs
$prefix = "Folder/path"
# Get the storage account
$storageAccount = Get-AzStorageAccount -ResourceGroupName "RGname" -Name $storageAccountName
# Get the storage context
$storageContext = $storageAccount.Context
# Get all containers in the storage account
$containers = Get-AzStorageContainer -Context $storageContext
# Delete blobs from each container
foreach ($container in $containers) {
$continuationToken = $null
$totalDeletedBlobs = 0
do {
$blobs = Get-AzStorageBlob -Context $storageContext -Container $container.Name -Prefix $prefix -ContinuationToken $continuationToken
$blobsCount = $blobs.Count
$totalDeletedBlobs += $blobsCount
foreach ($blob in $blobs) {
Write-Host "Deleting blob: $($blob.Name)"
Remove-AzStorageBlob -Context $storageContext -Container $container.Name -Blob $blob.Name -Force
}
$continuationToken = $blobs.ContinuationToken
}
while ($continuationToken -ne $null)
Write-Host "Deleted $totalDeletedBlobs blobs from container: $($container.Name)"
}
Write-Host "Blob deletion completed."