2014-09-28 84 views
1

我创建了一个错误'远程服务器返回错误:(404)未找到。Windows azure blob设置属性

CloudBlockBlob blockBlob = container.GetBlockBlobReference("test.csv"); 
          blockBlob.Properties.ContentType = "text/csv; charset=utf-8"; 
          blockBlob.SetProperties(); 

错误是在SetProperties引发的。

我看过一些代码,他们不调用SetProperties()。在这种情况下,contenttype是否保存到blob中?

我做了一些搜索,发现一些人建议检查小提琴手。

以下是发生在提琴手..

/xxxevents?restype =容器结果404

/xxxevents?restype =容器结果201创建(Container.CreateIfNotExists称为)

现在它抛出创建blob时出错..请求和响应标头提供..

404 HTTPS xxx.blob.core.windows.net /xxxevents/test.csv?comp=properties 215  application/xml waworkerhost:5500 



PUT https://xxx.blob.core.windows.net/xxxevents/test.csv?comp=properties HTTP/1.1 
User-Agent: WA-Storage/4.3.0 (.NET CLR 4.0.30319.18444; Win32NT 6.1.7601.65536) 
x-ms-version: 2014-02-14 
x-ms-blob-content-type: text/csv; charset=utf-8 
x-ms-client-request-id: 2424933c-1bd7-49fd-998e-11d5499da03b 
x-ms-date: Sun, 28 Sep 2014 07:16:04 GMT 
Authorization: SharedKey xxx:tQ6DeUSVSq0TIaRjnVQoOgqNJIlHU5k1uay4loMeU04= 
Host: xxx.blob.core.windows.net 
Content-Length: 0 


HTTP/1.1 404 The specified blob does not exist. 
Content-Length: 215 
Content-Type: application/xml 
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 
x-ms-request-id: 7845cafa-0001-0033-7d19-af2c68000000 
x-ms-version: 2014-02-14 
Date: Sun, 28 Sep 2014 07:15:53 GMT 

会真诚地感谢任何帮助

感谢

+0

您上传的斑点? – 2014-09-28 07:48:10

+0

不,创建容器后,我给出了提及的调用.. – Arnab 2014-09-28 07:58:51

+0

我已经成功上传了使用SAS的BLOB。但是现在我有一个挑战,要下载文件名的斑点。有人做过这个吗? – 2016-01-20 07:12:20

回答

2

这是正常现象。 SetBlobProperties()方法只能在blob存储中存在的blob上调用。你需要做的是首先上传blob。

假设你想从上传test.csv文件说C:\temp文件夹,这里就是你需要做什么:

  CloudBlockBlob blockBlob = container.GetBlockBlobReference("test.csv"); 
      blockBlob.Properties.ContentType = "text/csv; charset=utf-8"; 
      blockBlob.UploadFromFile(@"C:\temp\test.csv", FileMode.Open); 
+0

在这种情况下,FileMode意味着什么。另外,在哪种情况下需要调用SetProperties() – Arnab 2014-09-28 09:12:46

+1

老实说,我不知道为什么我们需要'FileMode',因为我们总是从blob读取数据。正如我所提到的,您调用SetBlobProperties来更改现有Blob的属性。举一个例子,让我们在上面提到的代码中忘记包含第二行并上传了blob。 blob的内容类型将是'application/octet-stream'。现在你想改变blob的内容类型。在这种情况下,您将使用您的代码更改blob的内容类型。 HTH。 – 2014-09-28 09:42:06