c# - 从 Azure 存储下载部分文件

标签 c# azure azure-storage azure-blob-storage

我的文件很大。由于文件太大,我一直尝试从Azure blob存储下载部分文件。 我一直在使用 CloudBlockBlob 类中的 DownloadRangeToStream 方法,它对我来说工作得很好。

现在我们计划使用Azure.Storage.Blobs.Specialized.BlockBlobClient进行上传,而BlockBlobClient类中没有类似的方法来下载范围或blob中的文件 block (不是整个文件,而是其中的一个 block )

我想知道是否有其他方法可以以更优化的方式做到这一点。!!

最佳答案

以下是用于分块下载大文件的代码更改(对于 Azure SKD v12)。 您所要做的就是通过传递起点和长度(或终点)来调用此方法

    public Stream DownloadRange(Stream outputStream, Guid containerName, Guid blobName, long offset, long length)
{
    var blockBlobClient = new BlockBlobClient(
                                    _configurationKeys.StorageConnectionString
                                    ,containerName.ToString(), 
                                    ,blobName.ToString());

    var httpRange = new Azure.HttpRange(offset, length);
    var output = blockBlobClient.Download(httpRange);
    output.Value.Content.CopyTo(outputStream);
    return outputStream;
}

关于c# - 从 Azure 存储下载部分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62988788/

相关文章:

c# - 在java中使用进程

c# - 具有两个不相等(唯一)类型的泛型类

azure - 在 Windows Azure 中,CloudBlockBlob.PutBlock 方法使用 TCP 还是 UDP 作为传输协议(protocol)?

azure - 如何在任务 DotNetCoreCLI@2 中使用 "nuget push"和 --skip-duplicate 选项

Powershell Azure : The term 'Get-AutomationConnection' is not recognized as the name of a cmdlet, 函数、脚本文件或可运行程序

c# - 客户端存储库 2.0 中对 AsTableServiceQuery() 的更改

c# - Redis并发读取和更新

c# - 在外部管理的 TCP 套接字上使用 WCF

java - 如何从 Azure Page Blob 中读取并发写入?

c# - container.ListBlobs 给出了 CloudBlobDirectory 的列表 我期待的是 CloudBlockBlobs 的列表?