【问题标题】:Windows azure blob set propertiesWindows azure blob 集属性
【发布时间】:2014-11-22 19:55:37
【问题描述】:

我收到一个错误“远程服务器返回错误:(404) Not Found.

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

在 SetProperties 中引发错误。

我见过一些不调用 SetProperties() 的代码。在这种情况下,内容类型是否会保存到 blob?

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

fiddler 上发生了以下情况..

/xxxevents?restype=container 结果 404

/xxxevents?restype=container Result 201 Created(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

非常感谢任何帮助

谢谢

【问题讨论】:

  • 你上传了 blob 吗?
  • 不,在创建容器后,我给出了提到的调用..
  • 我已经使用 SAS 成功上传了 BLOB。但现在我有一个挑战来下载带有文件名的 blob。有人做过吗?

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


【解决方案1】:

这是预期的行为。 SetBlobProperties() 方法只能在 blob 存储中的 blob 上调用。您需要先上传 Blob。

假设您尝试从 C:\temp 文件夹上传 test.csv 文件,您需要执行以下操作:

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

【讨论】:

  • 在这种情况下 FileMode 是什么意思。还有,什么情况下需要调用SetProperties()
  • 老实说,我不知道为什么在这种情况下我们需要FileMode,因为我们总是从 blob 中读取。正如我所提到的,您调用 SetBlobProperties 来更改现有 blob 的属性。举个例子,让我们在上面提到的代码中忘记包含第二行并上传了 blob。 Blob 的内容类型将为application/octet-stream。现在您要更改 blob 的内容类型。在这种情况下,您将使用您的代码来更改 blob 的内容类型。 HTH。
猜你喜欢
  • 2014-04-12
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
  • 2020-07-21
  • 2021-07-26
相关资源
最近更新 更多