Я пытаюсь отправить данные в мою учетную запись хранилища BLOB-объектов Azure, используя HTTP-запросы в Node-RED. GET-запрос работает нормально, поскольку не требует аутентификации. Моя проблема - это запрос PUT. Я не уверен, какой метод аутентификации является лучшим / простым, но я пытаюсь везти с SharedKey.
URL для PUT-запроса таков (заменив «myaccount» именем моей учетной записи хранения:
https://myaccount.blob.core.windows.net/container5/myblob
Я попытался добавить функциональный узел для изменения заголовков запроса, но почему-то я не знаю, как их правильно написать. Вот что я написал:
msg.headers = {};
msg.headers['x-ms-version'] = '2018-03-28';
msg.headers['x-ms-date'] = '2019-04-10';
msg.headers['x-ms-blob-type'] = 'BlockBlob';
msg.headers['x-ms-meta-m1'] = 'v1';
msg.headers['x-ms-meta-m2'] = 'v2'
msg.headers['charset']='UTF-8';
msg.headers['Authorization'] = 'SharedKey' ;
return msg;
Я знаю, что мне все еще нужно написать фактический SharedKey в моем коде, но я не знаю КАК. Может кто-нибудь мне помочь? Я нашел примеры в документации Microsoft, но синтаксис несколько отличается, поэтому я не знаю, как адаптировать его к узлу функции в Node-RED. Это то, что я нашел в https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key:
Authorization: SharedKeyLite myaccount:ctzMq410TV3wS7upTBcunJTDLEJwMAZuFPfr0mrrA08=
В любом случае, ошибка, которую я получаю в данный момент, заключается в следующем. Я предполагаю, что это означает, что мой заголовок авторизации неправильный / неполный
<?xml version="1.0" encoding="utf-8"?>InvalidAuthenticationInfo
Информация аутентификации не указана в правильном формате. Проверьте значение заголовка авторизации.RequestId: 494d22bf-f01e-0091-417e-ef8554000000Время: 2019-04-10T09: 17: 15.3098669Z