来自PUT的Azure Blob存储文档中“找不到404资源”

时间:2013-08-09 02:51:05

标签: rest azure azure-storage azure-storage-blobs

我正在尝试执行PUT请求来创建新的BLOB。在使用Authorization标头出现一些初始问题之后,当我尝试将文件放入容器时,我现在收到404 Resource Not Found错误。

我确信我的网址是正确的:

https://accountNameHere.blob.core.windows.net/containerNameHere

我已经检查并重新检查以确保我包含容器名称和帐户名称,并且它们都是正确的。

还有什么可能导致这种情况(除了我做错的明显可能性之外)?

编辑添加:

以下是原始请求标题:

PUT /testss HTTP/1.1
Host: accountName.blob.core.windows.net
Accept: */*
Connection: Keep-Alive
0: content-encoding
1: content-language
2: content-length
3: content-md5
4: content-type
5: date
6: if-modified-since
7: if-match
8: if-none-match
9: if-unmodified-since
10: range
x-ms-blob-type: BlockBlob
x-ms-version: 2011-08-18
x-ms-date: Fri, 09 Aug 2013 04:17:59 GMT
Content-Length: 126377
Authorization: SharedKey accountName:MBVLmoxzxZr+tf8EZw2GkbFLEHuNn8FNAaEHrcty/cM=
Expect: 100-continue

这是我发送的签名字符串:

PUT x-ms-blob-type:BlockBlob x-ms-date:Fri, 09 Aug 2013 04:03:20 GMT x-ms-version:2011-08-18 /accountName/test

以下是他们的期望:

PUT 126377 x-ms-blob-type:BlockBlob x-ms-date:Fri, 09 Aug 2013 04:02:17 GMT x-ms-version:2011-08-18 /accountName/test

两者之间的唯一区别是126377之后的PUT。这是文件的内容长度,我只是不确定如何删除它。

4 个答案:

答案 0 :(得分:25)

您是否检查过Blob容器的安全设置?可能是您没有足够的访问权限。

答案 1 :(得分:11)

检查您的容器。在新门户中,单击它旁边的省略号和编辑。如果要允许列出容器,请将Access类型设置为Blob或Container。

微软似乎已经提高了安全性,并默认将新容器设为私有。

答案 2 :(得分:3)

1 -在Azure Storage Explorer应用程序中,执行以下步骤来更改/验证访问权限。

  1. 右键单击有问题的容器的斑点
  2. 选择Set Public Access Level
  3. 设置为至少Public read access for blobs only
  4. 应用。

enter image description here


OR 2 -或在Azure门户面板中选择

  • Storage account>
  • Blob service部分中选择“ Blob”>
  • 选择要更改访问权限的一个或多个Blob>
  • 选择“ Access policy”>
  • 从下拉菜单中根据需要选择“ Blob”或“ Container”匿名访问

答案 3 :(得分:0)

您应该使用Fiddler来验证您是否正在发送您认为自己的请求。然后,您可以将Fiddler请求与文档进行比较。

容器是否已经存在?值得使用第三方存储资源管理器来验证它是否存在。