Azure BlobClient 如何按时间顺序(写入时间)迭代容器中的所有 Blob

问题描述 投票:0回答:1

我正在使用 azure SDK Blob 客户端,并尝试按时间顺序(通过写入时间)迭代容器中的所有 Blob。

如果写入了新的 blob,我还想继续读取最新的 blob,并按时间顺序流式传输所有 blob,这可能吗?

c# azure sdk azure-blob-storage blob
1个回答
0
投票

我正在使用 Azure SDK Blob 客户端,并尝试按时间顺序(通过写入时间)迭代容器中的所有 Blob。

您可以使用下面的代码,使用 .NET 中的

Azure.Storage.Blobs
NuGet 包,按照上次修改时间的时间顺序列出容器中的所有 Blob。

代码:

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

public class Program
{
    public static async Task Main(string[] args)
    {
        string connectionString = "xxxxxxx";
        string containerName = "test";

        await ListBlobsInChronologicalOrder(connectionString, containerName);
    }

    public static async Task ListBlobsInChronologicalOrder(string connectionString, string containerName)
    {
        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
        BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);

        List<BlobItem> blobs = new List<BlobItem>();

        await foreach (BlobItem blob in containerClient.GetBlobsAsync(BlobTraits.None, BlobStates.None))
        {
            blobs.Add(blob);
        }

        blobs = blobs.OrderByDescending(b => b.Properties.LastModified).ToList();

        foreach (var blob in blobs)
        {
            Console.WriteLine($"Blob name: {blob.Name}, Last modified: {blob.Properties.LastModified}");
        }
    }
}

上面的代码使用 Azure.Storage.Blobs 按上次修改时间的时间顺序列出了容器中的所有 Blob。它初始化 BlobServiceClient 和

BlobContainerClient
,并使用 GetBlobsAsync 列出 Blob。然后,它使用await
foreach
语句对blob进行排序和打印。

输出:

Blob name: sample_files.mp4, Last modified: 29-02-2024 05:28:51 +00:00
Blob name: demo1.pdf, Last modified: 10-01-2024 13:04:01 +00:00
Blob name: demo1.mp4, Last modified: 10-01-2024 13:03:19 +00:00
Blob name: 1GB.bin, Last modified: 10-01-2024 12:22:41 +00:00
Blob name: demo.mp4, Last modified: 10-01-2024 11:59:56 +00:00
Blob name: demo1.docx, Last modified: 27-12-2023 10:35:11 +00:00
Blob name: sample7.mp4, Last modified: 11-12-2023 06:40:21 +00:00
Blob name: sample.pdf, Last modified: 05-12-2023 11:11:47 +00:00
Blob name: example.pdf, Last modified: 05-12-2023 11:11:46 +00:00

Blobs listed in chronological order

参考:

使用 .NET 列出 blob - Azure 存储 |微软学习

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