c# - 检索 blob 文件名

标签 c# asp.net azure azure-blob-storage

因此,我正在尝试检索 Blob 存储中的文件的详细信息。这个想法是客户要求将与他们具体相关的文档放置在他们的门户上。

这是一次迁移,当前文件以以下格式列在网格中:

文件名、文件大小、文件类型、下载链接。

我遇到的问题是检索 blob 属性。

这是我目前拥有的代码片段。

public void BindGridDocuments()
{
    var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnection"].ConnectionString);
    var blobStorage = storageAccount.CreateCloudBlobClient();
    CloudBlobContainer container = blobStorage.GetContainerReference("documents");
    var documentCollection = container.ListBlobs();
    foreach (var document in documentCollection)
    {
        string filename = document.Uri.ToString();

    }
}

最佳答案

试试这个代码。代码假定 Blob 容器中的所有 Blob 均为 block Blob 类型。

存储客户端库2.0:

        CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
        CloudBlobContainer blobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference("images");
        var blobs = blobContainer.ListBlobs(null, true, BlobListingDetails.All).Cast<CloudBlockBlob>();
        foreach (var blockBlob in blobs)
        {
            Console.WriteLine("Name: " + blockBlob.Name);
            Console.WriteLine("Size: " + blockBlob.Properties.Length);
            Console.WriteLine("Content type: " + blockBlob.Properties.ContentType);
            Console.WriteLine("Download location: " + blockBlob.Uri);
            Console.WriteLine("=======================================");
        }

存储客户端库 1.7:

        CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
        CloudBlobContainer blobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference("images");
        var blobs = blobContainer.ListBlobs(new BlobRequestOptions()
            {
                BlobListingDetails = BlobListingDetails.All,
                UseFlatBlobListing = true,
            }).Cast<CloudBlockBlob>();
        foreach (var blockBlob in blobs)
        {
            Console.WriteLine("Name: " + blockBlob.Name);
            Console.WriteLine("Size: " + blockBlob.Properties.Length);
            Console.WriteLine("Content type: " + blockBlob.Properties.ContentType);
            Console.WriteLine("Download location: " + blockBlob.Uri);
            Console.WriteLine("=======================================");
        }

关于c# - 检索 blob 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14895548/

相关文章:

c# - 是否可以使用 ASP.NET MVC 应用程序进行 "in memory"托管,类似于 Web API?

c# - "MapHttpRoute"和 "MapRoute"之间的区别?

azure - 不同区域的资源组和资源本身

python - 将 Azure Web 应用连接到 Azure Redis 缓存

c# - ListView 中分组标题的重复

c# - Entity Framework 6 单元测试 (NSubstitute) - 如何测试带有子对象的对象在未请求子对象时不返回子对象

c# - asp.net MVC 自定义过滤器 [RESTAuthorize] 被忽略

C# 关于枚举方法

c# - 像JS的confirm方法一样使用Jquery的jConfirm

azure - 如何使用 Spring Boot 建立 Microsoft azure databricks 增量表连接,就像 mysql、sql server 一样