Срок действия подписи общего доступа к файлу Azure истекает до даты окончания - PullRequest
0 голосов
/ 22 октября 2019

Я использую пробную учетную запись Azure на 12 месяцев и размещаю файл excel в учетной записи хранения через портал Azure.

Я создаю подпись общего доступа с датой окончания как три месяца с сегодняшнего дня и прикрепляю сгенерированный SASтокен для URL файла.

Я могу получить доступ к файлу, используя этот процесс. Тем не менее, токен быстро истекает после некоторых вызовов URL. Последний раз эта проблема наблюдалась после перезаписи файла обновленным файлом в учетной записи хранения Azure с последующей регенерацией токена SAS.

URL-адрес с добавленным к нему токеном SAS выглядит следующим образом:

https://xxxxxx.file.core.windows.net/folder_name/yyyyy.xlsx?sv=2019-02-02&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-12-30T16:04:08Z&st=2019-10-22T08:04:08Z&spr=https,http&sig=xxxxx%yyyyy%zzzz

Вот ошибка, которую я вижу:

<Error>
<Code>ConditionHeadersNotSupported</Code>
<Message>
Condition headers are not supported. RequestId:<XXXXX> Time:<YYYYYY>
</Message>
</Error>

Ошибка является случайной, и URL работает с перебоями.

Кто-нибудь наблюдал эту проблему и что может быть исправлено?

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Проблема, с которой вы столкнулись, связана с настройкой Microsoft Windows-Azure-File / 1.0 Microsoft-HTTPAPI / 2.0.

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

Браузеры, как правило, смотрят на локально кэшированные копии файлов, прежде чем пытаться загрузить новую копию. Они делают это, проверяя атрибуты локального файла и прося веб-сервер предоставить им файл «ЕСЛИ», который был изменен после даты, соответствующей кешу, с использованием заголовка If-Modified-Since Как сказал БоуманЖу.

Вместо того, чтобы игнорировать заголовок, сервер выдает ошибку. Чтобы преодолеть это, вам необходимо выполнить полную перезагрузку страницы. В Chrome вы можете сделать это, нажав CTRL + SHIFT + R .

0 голосов
/ 22 октября 2019

Я могу воспроизвести вашу ошибку.

enter image description here

Это не означает, что срок действия маркера SAS истек. Потому что, если вы протестируете хранилище BLOB-объектов Azure, все будет хорошо. Ошибка исходит от браузера, который мы используем. Браузер добавляет заголовок if condition.

enter image description here

Если заголовок if отсутствует, вы можете использовать его как обычно.

enter image description here

Это связано с тем, что хранилище файлов не поддерживает заголовок if. И запрос с заголовком if не будет принят Файловым хранилищем.

Это Официальный документ о типе заголовка, который поддерживает Файловое хранилище.

Так что это не ответственность токена SAS. Это ошибка в браузере. Если это не является особенным, я предлагаю вам использовать хранилище BLOB-объектов Azure, это не вызовет проблем.

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