我正在尝试执行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
。这是文件的内容长度,我只是不确定如何删除它。
答案 0 :(得分:25)
您是否检查过Blob容器的安全设置?可能是您没有足够的访问权限。
答案 1 :(得分:11)
检查您的容器。在新门户中,单击它旁边的省略号和编辑。如果要允许列出容器,请将Access类型设置为Blob或Container。
微软似乎已经提高了安全性,并默认将新容器设为私有。
答案 2 :(得分:3)
1 -在Azure Storage Explorer应用程序中,执行以下步骤来更改/验证访问权限。
Set Public Access Level
Public read access for blobs only
。OR 2 -或在Azure门户面板中选择
Storage account
> Blob service
部分中选择“ Blob
”> Access policy
”> Blob
”或“ Container
”匿名访问答案 3 :(得分:0)
您应该使用Fiddler来验证您是否正在发送您认为自己的请求。然后,您可以将Fiddler请求与文档进行比较。
容器是否已经存在?值得使用第三方存储资源管理器来验证它是否存在。