【问题标题】:Azure BlockBlob Upload From Stream always has content length 0从流上传的 Azure BlockBlob 始终具有内容长度 0
【发布时间】:2014-11-22 22:06:31
【问题描述】:

当我调用“await blockBlob.UploadFromStreamAsync(stream);”时,我发现流的内容长度为某个值(500+ 字节)。

但是一旦调用,我发现块块中没有任何变化。 我在 fiddler 中检查它,发现调用的实体内容长度 =0。

如果有人可以指导如何调试这样的问题,将不胜感激。

谢谢

【问题讨论】:

  • 请确保您将流的位置设置为 0。当您将某些内容读入流中然后忘记将其位置设置为 0 时,我看到了此错误。或者您可以分享您的代码:)。
  • 我正在使用 (MemoryStream ms = new MemoryStream(bytearray)) { await blockBlob.UploadFromStreamAsync(ms); }
  • 我还需要将位置设置为 0 吗?
  • 是的,您仍然需要这样做。
  • 您在 Fiddler 中看到了多少个调用? URL 是否有任何查询参数?您使用的是哪个版本的 Azure 存储客户端库?

标签: azure azure-storage azure-blob-storage


【解决方案1】:

问题是..如何调试这个? 我有同样的问题,发现这个有用的文档来启用跟踪:

Client-side Logging with the .NET Storage Client Library

我的问题是在目标资源已经存在(覆盖操作)时使用 UploadFromStreamAsync 天蓝色文件存储上传时,需要 fileStream.Seek(0, SeekOrigin.Begin)。上传(和创建)新资源时,不需要搜索。

【讨论】:

    【解决方案2】:

    为什么要转换字节数组,而不是直接上传?

    像这样:

    blob.UploadFromByteArray(bytearray, 0, bytearray.Count());
    

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      相关资源
      最近更新 更多