2016-09-13 14 views
0

是否可以通过编程方式删除批量中的Azure blob对象? 一个一个删除对象有时需要我们几天。以编程方式删除批量中的Azure Blob存储对象

我们在Azure Blob存储上放置了大量新文件,并删除了所有我们想要删除的过期文件,以避免不必要的费用。

我GOOGLE在网上/ MSDN /堆栈溢出 ,发现只有一个MSDN从2014指的是创建Microsoft网站上的功能请求话题。

回答

6

是否可以通过编程方式删除批量中的Azure blob对象?

不需要。您需要逐个删除斑点。

你可以做什么来加速这个过程是创建不同的容器(比如每个年/月组合的容器),并在其中放置相关的斑点。当您需要删除该月份/年份的斑点时,只需删除该容器即可。

+0

什么?当然可以。看到下面的回答 – EvertonMc

+1

@EvertonMc你的代码正在做的是列出blob,然后发送请求逐个删除blob。这不是在批量恕我直言删除。对我来说,批量删除会给出Azure存储的blob列表,并让它在一个请求中删除这些blob。 –

1

当然可以(即使用PowerShell)

$Ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey 
Get-AzureStorageBlob -Container "container-name" -Context $Ctx -Blob TellMeWhatToDelete* | Remove-AzureStorageBlob 

即:这将删除所有的PPT演示文档中的容器

Get-AzureStorageBlob -Container "documents" -Context $Ctx -Blob *.pptx | Remove-AzureStorageBlob 

或者你可以删除最后没有改变每一个的docx文件30天

Get-AzureStorageBlob -Container "documents" -Context $Ctx -Blob *.docx 
| where {$_.LastModified -le (get-date).AddDays(-30) } | Remove-AzureStorageBlob 
+0

好的,但这真的会扩大到删除30M文件批量?这不是一个假设的问题。这正是我现在正在盯着的。 –