gpt4 book ai didi

azure - Microsoft.WindowsAzure.StorageClient.CloudBlockBlob.DownloadBlockList 返回 0 个 block

转载 作者:行者123 更新时间:2023-12-02 07:42:01 25 4
gpt4 key购买 nike

我使用 CloudBlobContainer.ListBlobs 获取 IListBlobItems 列表。然后,我使用以下代码循环每个条目以显示 blob 的大小:

        foreach (IListBlobItem item in blobs)
{
if (item.GetType() == typeof(CloudBlobDirectory))
{ }
else if (item.GetType() == typeof(CloudBlockBlob))
{
CloudBlockBlob blockBlob = (CloudBlockBlob)item;
IEnumerable<ListBlockItem> blocks = blockBlob.DownloadBlockList(new BlobRequestOptions { BlobListingDetails = BlobListingDetails.All });
Console.WriteLine(blockBlob.Name.PadRight(50, ' ') +
blocks.Sum(b => b.Size));
}
else
{
Console.WriteLine(item.Uri.LocalPath);
}

}

但是,当我检查变量 blocks 的计数时,它始终为 0。这是为什么?

最佳答案

我相信(不是 100% 确定)DownloadBlockList() 仅当 Blob 最初是分块上传而不是一次性全部上传时才有效。这可能就是为什么你没有得到任何阻止。

无论如何,您似乎只需要 blob 的总大小。因此,使用 blob.Properties.Length 属性可能是一种更简单的方法:

CloudBlockBlob blockBlob = (CloudBlockBlob)item;
blockBlob.FetchAttributes();
Console.WriteLine(blockBlob.Name.PadRight(50, ' ') + blockBlob.Properties.Length);

关于azure - Microsoft.WindowsAzure.StorageClient.CloudBlockBlob.DownloadBlockList 返回 0 个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10033876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com