如何删除azure容器中的旧文件

use*_*937 6 backup storage containers blob azure

我计划通过关闭我的虚拟机然后将vhd文件从生产容器复制到备份容器来备份我的azure vhd文件.如何自动删除备份容器中一周前的vhd文件?

Ric*_*ney 8

如果您可以接受使用PowerShell,那么这将为您完成.它将注册一个每天运行的预定作业,并删除指定容器中的PageBlob.

$taskTrigger = New-ScheduledTaskTrigger -Daily -At 12:01AM
Register-ScheduledJob -Name DeleteMyOldFiles -Trigger $taskTrigger -ScriptBlock {
    $isOldDate = [DateTime]::UtcNow.AddDays(-7)

    Get-AzureStorageBlob -Container "[YOUR CONTAINER NAME]" |
        Where-Object { $_.LastModified.UtcDateTime -lt $isOldDate -and $_.BlobType -eq "PageBlob" } |
        Remove-AzureStorageBlob
}
Run Code Online (Sandbox Code Playgroud)


Gau*_*tri 1

这是开箱即用的东西。您必须自己编写一些代码。基本上步骤是:

  1. 列出备份容器中的所有 blob。Blob 列表将返回 Blob 及其属性。其中一个属性是LastModifiedDate(这将以 UTC 时间表示)。
  2. 然后,您可以使用逻辑来查找“x”天前已修改的 blob。然后您可以继续删除这些斑点。

其他一些事情:

  • 您提到您的备份容器包含一些 VHD,它们本质上是页 blob。当您列出 blob 时,您还会获得 blob 类型,以便您可以按 blob 类型进一步过滤列表 (= PageBlob)
  • 至于自动化该过程,您可以将其编写在 PowerShell 脚本中,然后使用 Windows Scheduler 进行调度。如果您习惯于编写 Node.js,则可以使用 Node.js 编写相同的逻辑并利用 Windows Azure Mobile Service Scheduler。