【发布时间】:2013-05-11 12:46:56
【问题描述】:
我有一个从 OpenWriter 方法创建的 BlobStream。
var blob = CloudContainer.GetBlobReference(name));
if (blob == null)
{
return null;
}
return blob.OpenWrite();
使用这个流我想寻找或设置位置,但每次我这样做我都会得到一个 NotSupportedException。在做了一些研究后,我发现 canSeek 设置为 false,这导致了这个问题。但是,仅当长度未知时,CanSeek 才为假。但是当我运行调试器时长度是已知的。
为什么 CanSeek 是假的? 如何将其设置为 true?
【问题讨论】:
-
您使用的是什么版本的客户端库?底层 blob(块或页)是什么类型?在最新的 v2.0 客户端中,您似乎只能在 Page blob 上查找写入流,所以这可能是不可能的。
-
我正在使用块 blob。
-
块和页面有什么大的区别吗?
-
我已经快速切换到 page 看看它是否有效。我会及时通知你。
-
我对页面 blob 的工作并不多,但显然您可以写入页面 blob,否则您将如何创建一个? BlobWriteStreamBase 类明确支持写入和查找页 blob。如果您说明您使用的是哪个客户端库版本,并发布了您用于创建 blob 的代码,将会很有帮助。
标签: c# azure azure-blob-storage streamwriter seek