是否可以列出上次修改日期>某个日期的Azure Blob

问题描述 投票:2回答:2

是否可以列出上次修改日期大于指定日期的容器上的所有blob。

我有一个包含数百万个blob的容器,并希望将这些blob复制到备份容器中,但是不希望遍历所有blob,检查每个blob上次修改日期。

c# azure azure-storage-blobs
2个回答
1
投票

可以使用Powershell。请参阅下面的代码段。

$StorageAccountName = "AccountName" 
$StorageAccountKey = "What_ever_your_key_is_123asdf5524523A=="
$Context = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
$ContainerName = "Container"

$Blobs = Get-AzureStorageBlob -Container $ContainerName -Context $Context `
| Where-Object{$_.LastModified.DateTime -gt (Get-Date).Date}

上面的命令将从午夜获得当天的blob。

然后,您可以使用Get-Date cmdlet上的函数进一步缩小时间范围,如下所示。

$Blobs = Get-AzureStorageBlob -Container $ContainerName -Context $Context `
| Where-Object{$_.LastModified.DateTime -gt ((Get-Date).Date).AddDays(-1)}

你也可以通过管道到Sort-Object cmdlet进行排序,如下所示,对任何属性进行排序(我在下面的例子中按日期排序)。

$Blobs = Get-AzureStorageBlob -Container $ContainerName -Context $Context `
| Where-Object{$_.LastModified.DateTime -gt (Get-Date).Date.AddDays(-1)} `
| Sort-Object -Property Date

3
投票

是否可以列出上次修改日期大于指定日期的容器上的所有blob。

截至今天,这是不可能的。 Blob服务不提供查询功能。当您列出blob时,Blob服务将返回按blob名称排序的列表。

不是现在,但如果您需要此功能,可以继续按日期组织blob,方法是在名称前加上年,月和日期。然后你可以要求blob服务返回以特定前缀开头的blob名称。如果使用Azure App Service,请查看Azure应用服务的诊断数据如何存储在blob容器中。它按年,月和日期作为前缀。

© www.soinside.com 2019 - 2024. All rights reserved.