Лазурное пятно ставить запрещено, но получать блоб работает остальные api - PullRequest
0 голосов
/ 11 мая 2018

Я хочу поместить текстовый файл в контейнер BLOB-объектов, используя HttResquestMessage, и я получаю сообщение об ошибке 403 (Запрещено). Я знаю, что это известная проблема, и есть много ответов об этом, но я много искал и не смог найти проблему в моем случае. Вот моя подпись

PUT\n
\n
\n
11\n
\n
\n
\n
\n
\n
\n
\n
\n
x-ms-blob-type:BlockBlob\n
x-ms-date:Thu, 10 May 2018 16:00:21 GMT\n
x-ms-version:2017-07-29\n
/MyStorage/dbstore/myFolder/test2.txt"

А это авторизация, сгенерированная SHA256 и Base64 кодировкой

SharedKey MyStorage:Oy8nB79/KVROzxYCYSF71djhIwYEYS36tgRqyxe6sXY=

Эта авторизация работает для GET-запроса. Я попытался получить все имена контейнеров, и все прошло успешно.

Мой HttpRequestMessage выглядит как

{Method: PUT, RequestUri:             
'http://MyStorage.blob.core.windows.net/dbstore/            
myFolder/test2.txt', Version: 1.1, Content: 
System.Net.Http.ByteArrayContent, Headers:
{
  x-ms-date: Fri, 11 May 2018 06:39:35 GMT
  x-ms-version: 2017-07-29
  Authorization: SharedKey     
storagekaren:Oy8nB79/KVROzxYCYSF71djhIwYEYS36tgRqyxe6sXY=
  Content-Length: 11
  Content-MD5: CAQ66JnJH0H9GhrLTy+b1w==
}}
    Content: {System.Net.Http.ByteArrayContent}
    Headers: {x-ms-date: Fri, 11 May 2018 06:39:35 GMT
x-ms-version: 2017-07-29
Authorization: SharedKey     
storagekaren:Oy8nB79/KVROzxYCYSF71djhIwYEYS36tgRqyxe6sXY=
}
    Method: {PUT}
    Properties: Count = 0
    RequestUri: {http://MyStorage.blob.core.windows.net/dbstore/myFolder/test2.txt}
    Version: {1.1}

Что я пропустил в запросе?

1 Ответ

0 голосов
/ 14 мая 2018

При добавлении BLOB-объекта нужно добавить два параметра. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * '' 100 '* должен быть включен в заголовок HttpRequestMessage ».заголовок запроса, он также должен быть включен в StringToSign, т. е. подпись, которую вы упомянули.

Любой дополнительный вопрос, просто задайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...