Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以列出上次修改日期>;某个日期_C#_Azure_Azure Storage Blobs - Fatal编程技术网

C# 是否可以列出上次修改日期>;某个日期

C# 是否可以列出上次修改日期>;某个日期,c#,azure,azure-storage-blobs,C#,Azure,Azure Storage Blobs,是否可以列出上次修改日期大于指定日期的容器上的所有Blob 我有一个包含数百万个blob的容器,希望将这些blob复制到一个备份容器中,但是我不想循环检查所有blob,检查每个blob的最后修改日期 是否可以列出容器上上次修改的所有blob 日期大于指定的日期 到今天为止,这是不可能做到的。Blob服务不提供查询功能。当您列出Blob时,Blob服务将返回一个按Blob名称排序的列表 现在还没有,但如果您需要此功能,您可能希望通过在blob的名称前加上年、月和日期来按日期组织blob。然后,您可

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

我有一个包含数百万个blob的容器,希望将这些blob复制到一个备份容器中,但是我不想循环检查所有blob,检查每个blob的最后修改日期

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

到今天为止,这是不可能做到的。Blob服务不提供查询功能。当您列出Blob时,Blob服务将返回一个按Blob名称排序的列表


现在还没有,但如果您需要此功能,您可能希望通过在blob的名称前加上年、月和日期来按日期组织blob。然后,您可以要求blob服务返回以特定前缀开头的blob名称。如果您使用
Azure应用程序服务
,请务必查看Azure应用程序服务的诊断数据是如何存储在blob容器中的。它以年、月和日期为前缀。

可以使用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,以便对任何属性进行排序(我在下面的示例中按日期排序)


如果查看,则不存在对日期/时间进行过滤的参数。因此,唯一的方法是列出所有blob,然后根据您的条件进行筛选(这也是Mustafa Salmans的答案),或者按照Gaurav Mantri已经写过的日期组织blob。

请参见最好将
Get AzureStorageBlob-Container$ContainerName-Context$Context存储在自己的变量中,然后使用该变量将管道传输到
其中的对象{$\ LastModified.DateTime-gt(Get Date.Date}
。否则,如果调用
Get AzureStorageBlob
需要很长时间才能运行,并且您发现使用了错误的日期,您将自责。
$Blobs = Get-AzureStorageBlob -Container $ContainerName -Context $Context `
| Where-Object{$_.LastModified.DateTime -gt (Get-Date).Date.AddDays(-1)} `
| Sort-Object -Property Date