Azure Blob Stroage Blob是否支持随机可访问的流?

时间:2017-10-02 12:19:43

标签: c# .net azure azure-storage-blobs azure-blob-storage

是否可以从.NET随机访问Azure Blob存储Blob? (即返回的stream.CanSeek == true和stream.Seek()在没有缓存内存中的整个文件的情况下工作)

我无法尝试+我已经搜索了MSDN并使用了Google,但我找不到答案。希望有人在这里知道。

(最好答案是MSDN的链接...)

2 个答案:

答案 0 :(得分:2)

这个问题的答案是here

  

你可以在一个页面blob中寻找 - 它有明确的支持   BlobWriteStreamBase   类。

     

我想你也可以阅读&写入块blob的指定部分   使用HTTP Range标头,这实际上是相同的   寻求。但我认为你必须自己实现它。

简而言之,您需要做的是实现一个适配器:您自己的流,它在引擎盖下调用DownloadRangeToStream之类的方法,但它本身就像一个流本身。

答案 1 :(得分:1)

如果我正确理解你的问题,你只想阅读一部分blob。例如,如果你有一个1 GB的blob,你想从该blob中读出1 MB的数据而不先读取内存中的整个1 GB数据。

如果是这种情况,那么您可以使用DownloadRangeToStreamDownloadRangeToStreamAsync方法。在这两种方法中,您都可以指定偏移量(即起点)和要从该偏移量读取的数据长度。