我的文件很大。由于文件太大,我一直尝试从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/