0

Итак, мы создаем веб-платформу потокового аудио, где аудиофайлы хранятся в хранилище памяти. Мы создаем URL-адрес SAS для блоба, а затем загружаем его в javascript-плеер (aurora).Sporadic 403 запрещен при доступе к хранилищу Azure blob через SAS

Это работает отлично по большей части, однако, когда я много переключаю дорожки, в какой-то момент я начинаю получать 403 ответа на запрос HEAD файла.

Если я нажму на RESEND в firebug, который просто передает тот же самый запрос, то иногда я все равно получаю ту же ошибку 403, но через некоторое время запрос снова сработает, а это значит, что URL-адрес сформирован правильно.

Ниже приводится полный ответ я получаю

403 Server failed to authenticate the request. Make sure the value of 
Authorization header is formed correctly including the signature. 
Transfer-Encoding: chunked Server: Microsoft-HTTPAPI/2.0 
x-ms-request-id: <removed> 
access-control-expose-headers: 
Content-Type,Accept-Ranges,Content-Encoding,Content-Length,Content-Range 
Access-Control-Allow-Origin: * Date: Fri, 12 Aug 2016 06:31:58 GMT 

я начинаю думать, что какое-то ограничение на хранение больших двоичных объектов срабатывает, например, максимальное количество соединений или ограничение пропускной способности, возможно, даже защитный маханизм DOS. Есть ли у кого-нибудь предложения?

Я прочитал несколько статей о диагностике в хранилище, но все они относятся к старым порталам Azure. Моя учетная запись хранится только на новом портале. Таким образом, мое подтекстование было бы: может ли кто-нибудь направить меня к способу диагностики того, почему запросы отклоняются, используя новый портал Azure?

Редактировать: Я использовал Azure Management Studio, чтобы просмотреть журналы учетной записи хранилища. Я нашел лаглинь в там, задающее «SASNetworkError»:

1.0;2016-08-12T10:26:27.7337647Z;GetBlob;SASNetworkError;206;19002;6;sas;;[xxx];blob;"https://[xxx].blob.core.windows.net:443/files/[xxx].flac?sv=2015-04-05&amp;sr=b&amp;si=flacpolicy636065943797947863&amp;sig=XXXXX&amp;sip=[xxx]";"/[xxx]/files/[xxx].flac";8f7d48a3-0001-0017-5983-f499a7000000;0;[xxx]:40690;2015-04-05;637;0;499;0;0;;;"&quot;0x8D35C8CDDD72689&quot;";Monday, 04-Apr-16 13:27:27 GMT;;"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0";"http://[xxx].azurewebsites.net/"; 

Похоже, что это является причиной ошибки, но я не могу понять, что это такое, что это не удается.

+0

Azure Storage не будет работать из-за возможности подключения - это довольно массивная система хранения с несколькими арендаторами. Вы экспериментировали с тем, что время начала SAS было немного в прошлом, может быть, минуту или две (и, возможно, время окончания бит в будущем, если это короткое окно действия)? Дрифт часов может привести к тому, что ваш SAS окажется недействительным в течение короткого времени. –

+0

Спасибо за предложение, Дэвид. Я уверен, что Azure может справиться с этим как с системой, но я больше думал о конкретных ограничениях для нашей учетной записи. Я ушел с пустого времени, но теперь я попытался установить его вчера. Я также установил время истечения срока на несколько лет вперед, но никаких кубиков ... ошибка все еще происходит. –

ответ

0

Я обнаружил, что вызвало мои ошибки: на контейнере существует не более пяти политик доступа по имени. Я создал новую политику доступа для каждой игры и зарегистрировал ее под новым именем. Я решил это, создав новую политику и передав ее вызову GetSharedAccessSignature.

0

Согласно этому article,

запрос SAS, который не удалось из-за ошибки сети. Чаще всего возникает, когда клиент преждевременно закрывает соединение до истечения времени ожидания.

Может ли быть сетевой посредник, как прокси-сервер, который закрывает соединение?

+0

Спасибо за ссылку на эту статью, Дон, я еще этого не нашел. Все запросы выполняются из браузера, непосредственно в хранилище blob. Это происходит в нескольких сетях. Я не вижу, как это может быть связано с прокси-сервером.Может ли это быть неудачей балансировки нагрузки в Azure? –