2012-02-29 17 views
2

我嘗試使用Blob服務REST API,名單集裝箱(REST API): http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspxAzure的blob服務REST API返回403錯誤: 「請求日期標題沒有指定」

所以我得到的訪問密鑰從管理Portal- >託管服務,存儲帳戶& CDN - >存儲帳戶,在這裏我選擇了我的存儲(aziztest),並獲得鑰匙從瀏覽訪問鍵: 有2個按鍵中小學。

然後使用我創建的字符串來簽名: GET \ n \ n \ n \ n \ n \ n \ n \ nx-ms-date:2012年2月29日星期三06: 05:13 GMT \ NX-MS-版本:2009-09-19 \ N/aziztest \ NCOMP:列表

,並使用我的存儲的主要訪問鍵讓Authorization頭: 授權:SharedKey aziztest:OjfrOTuO4zy1oUWGHkw8uj3%2BgAZq33GWe15gPT/PK%2BK%3D

然後讓GET請求: http://aziztest.blob.core.windows.net/?comp=list

但我得到一個錯誤: AuthenticationFailed服務器無法驗證請求。 \ nRequestId:892d1f31-a20d-45a5-b16a-2f7c07519863 \ n時間:2012-02-29T00:02:44.2841133Z請求日期標題未指定

什麼是錯誤的在我的程序中?

回答

1

你所做的事好像還不錯,我相信你是繼instructions on MSDN on how to create the authentication header?我可以看到你使用它們,你所簽署的字符串中,但你有沒有包括x-ms-date和您的請求頭x-ms-version實際?錯誤信息會顯示你沒有。在認證過程

+0

好了,現在我設置標題爲: 'X-MS-版本:2009-09-19 \ NX-MS-日期:星期三,2012年2月29日23時20分13秒GMT \ nAuthorization:SharedKey aziztest:TXhHOFdpTkVNZy83Z0xsaVVlci9sRkxxc2RYZFJ2R0l4L2ZFT2ZtUmxOaz0%3D \ n'。但是,現在我得到了一個錯誤:<?xml的版本= \ 「1.0 \」 編碼= \ 「UTF-8 \」>InvalidAuthenticationInfo認證信息沒有在正確的格式給出。檢查授權標頭的值。\ nRequestId:ad4d0c0b-8664-49a8-adda-ce2c9d35d72b \ n時間:2012-02-29T17:20:13.3766711Z' – Aziz 2012-02-29 17:22:47

+0

我會再次說錯誤信息告訴你該怎麼做。返回到我提供的鏈接,並確保您遵循了生成身份驗證標頭的所有步驟。在散列它們之前,也許你不是UTF-8編碼項目? – knightpfhor 2012-02-29 18:58:50

0

我上傳的blob Azure存儲容器,但在JavaScript編碼時命中類似的錯誤。將link發佈到此處的代碼清單。希望它能幫助別人。

0

我在一個PHP應用程序,這個問題同樣的問題是文件名編碼的口音,所以我結束了該文件的名稱轉換爲一個base64這樣的:

$ext=explode(".",$_FILES["file"]["name"]); 
    $_FILES["file"]["name"]=str_replace("=","",base64_encode($_FILES["file"]["name"])).".".$ext[count($ext)-1]; 
相關問題