C#没有从Azure blob存储中检索blob

时间:2017-08-09 10:51:57

标签: c# azure azure-storage-blobs

我有一系列想要处理的blob。我的程序收到404错误,抛出这样的异常:

ErrorCode:BlobNotFound
ErrorMessage:The specified blob does not exist.

正确设置了容器上的访问策略,当我将记录的URI粘贴到我的浏览器中时(例如,这个:https://atpblob.blob.core.windows.net/darkskydata/plot1251time2010-01-02t00:00:01z.json),它下载得很好。

以下是相关代码:

Console.WriteLine(daily.BlobUri);
 CloudBlockBlob blockBlob = container.GetBlockBlobReference(daily.BlobUri);
 string text;
 using (var memoryStream = new MemoryStream())
 {
  blockBlob.DownloadToStream(memoryStream);
  text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
 }
 Console.WriteLine(text);

我做错了什么?

1 个答案:

答案 0 :(得分:3)

我认为问题在于以下代码行:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(daily.BlobUri);

如果查看GetBlockBlobReference文档,预期参数实际上是blob的名称,而不是URL。

请尝试将其更改为blob的名称。出于测试目的,请尝试以下代码:

CloudBlockBlob blockBlob = container.GetBlockBlobReference("plot1251time2010-01-02t00:00:01z.json");

你不应该收到错误。