是否有一种方法来列出blob在AzureBlobStorage基于时间戳?



我想以编程方式列出在Azure存储容器中创建的所有blob一段时间后?是否有一种方法可以只列出这些blob文件?

目前,还没有直接的方法来列出一段时间后的blob。

这里有两种方法。

1。首先列出所有blob ->获取每个blob的创建时间->将blob的创建时间与指定时间进行比较。像下图:

myblobs = container_client.list_blobs()
#define a filter date or timestamp as per your need.
filter_date = "2021-01-18 or 2021-01-18 01:31:29"
for blob in myblobs:
#compare the creation time of blob with the filter_date
if str(blob.creation_time) > filter_date:
print(blob.name + ":" + str(blob.creation_time))

2。在创建blob时,可以为blob指定前缀。前缀可以定义为年-月-日(或者您可以添加小时,分钟等)。然后,当您使用list_blobs()方法列出blob时,有一个参数name_starts_with。此时,可以为name_starts_with参数指定日期。

如果你喜欢Powershell:

$daysAgo = 30
# this example uses OAuth token, you can change it to use a SAS token or account key
$ctx = New-AzStorageContext -StorageAccountName MyStorageAccount -UseConnectedAccount
# Get all blobs in container, get the Name and CreatedOn date
# then filter by days old and sort by descending date
Get-AzStorageBlob -Context $ctx -Container MyContainer | `
Select-Object Name, @{L="CreatedOn"; E={$_.BlobProperties.CreatedOn}} | `
Where-Object CreatedOn -gt (Get-Date).AddDays(-$daysAgo) | `
Sort-Object CreatedOn -Descending

重要:您必须是该帐户的存储帐户Blob贡献者。我是订阅所有者,但在我添加此角色之前,这在我的帐户上不起作用。可能还有其他角色可以工作,但不要认为您的订阅或资源组级别的角色在这里也可以工作。

最新更新