Fine Uploader получает сообщение об истечении срока действия политики, отправляя его на S3 для некоторых

Недавно я внедрил Fine Uploader, и в основном это было успешно. Однако некоторые пользователи не могут загружать файлы. Все они используют современные браузеры (IE10, FF и Chrome). Один дал мне удаленный доступ к своей машине, и я смог попробовать его как в Chrome, так и в FF.

Я получил ту же ошибку на обоих:

[10:45:28.330] "[FineUploader 3.8.0] Received response status 403 with body: <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Invalid according to Policy: Policy expired.</Message><RequestId>--removed--</RequestId><HostId>--removed--</HostId></Error>"

Это что-то с настройками часового пояса на их компьютере, где создается недопустимая политика?


person Matt Curry    schedule 29.08.2013    source источник


Ответы (1)


Настройки часового пояса не будут иметь значения, поскольку время указано в формате UTC. Однако, если время на компьютере пользователя не точное (скажем, отставание на 5 и более минут), то срок действия политики истекает, согласно Amazon.

Fine Uploader устанавливает срок действия 5 минут (опять же, в формате UTC). Используемая дата генерируется в браузере, поэтому будет использоваться время вашего клиентского компьютера. Если часы клиентского компьютера отстают на 5 или более минут, срок действия политики будет считаться просроченным, когда Amazon обработает ее.

Я совершенно уверен, что проблема связана со значительным дрейфом часов компьютера вашего клиента. Если вы подтвердите это, я предлагаю вам поручить им синхронизировать системные часы с сервером времени.

Обновление: в Fine Uploader 5.5 добавлена ​​новая функция, которая позволяет преодолевать резкий сдвиг часов на пользовательских компьютерах/браузерах. См. раздел сдвига часов о функции S3. страницу для получения дополнительной информации.

person Ray Nicholus    schedule 29.08.2013
comment
Спасибо. Я настроил удаленный доступ к другому клиенту с проблемой на завтра и подтвержу тогда. Имеют ли значение быстрые часы или просто медленные? Можно ли где-нибудь настроить 5-минутную настройку? - person Matt Curry; 30.08.2013
comment
Быстрые часы не приведут к каким-либо ошибкам со стороны Amazon в данном конкретном случае. В настоящее время срок действия не настраивается. Часы, которые отстают от правильного времени на 5 минут или более, нетипичны и должны быть действительно устранены. Я понимаю, почему вы можете захотеть просто увеличить дату истечения срока действия, чтобы компенсировать часы, которые, скажем, отстают на 5-10 минут, но как насчет часов, которые отстают на 1 час или 1 день и т. д.? Я полагаю, что дату можно установить на какое-то далекое будущее, скажем, через 30 лет, но я чувствовал, что 5 минут — это разумный и безопасный срок годности. - person Ray Nicholus; 30.08.2013
comment
Человек, у которого возникла проблема с компьютером, бросил меня, поэтому я не мог подтвердить, что проблема была во времени. Любая мысль о том, чтобы установить время истечения срока действия на сервере как часть запроса подписи? Таким образом, вам не нужно беспокоиться о проблемах со временем у пользователя. - person Matt Curry; 01.09.2013
comment
Собственно, это уже можно сделать, если очень хочется. Просто отредактируйте документ политики на своем сервере, когда получите запрос на подпись, замените свойство истечения срока действия в документе политики своим собственным временем на стороне сервера (например, +5 минут). Затем закодируйте и подпишите этот измененный документ политики с помощью base-64). Подробнее о формате документа политики, который Fine Uploader создает на стороне клиента, можно прочитать здесь: blog.fineuploader .com/#policy-format. - person Ray Nicholus; 02.09.2013
comment
Спасибо. Я попробую. Я думал, что мне придется вернуть обновленный срок действия в браузер, чтобы его можно было передать на S3. - person Matt Curry; 02.09.2013
comment
Политика в кодировке base 64 — это то, что по большей части отправляется на s3 вместе с подписью и файлом. Fine Uploader создает политику для удобства, но вы, безусловно, можете изменить ее на стороне сервера и вернуть измененную базу политики 64 в закодированном виде и подпись. - person Ray Nicholus; 02.09.2013