Ошибка AWS S3 REST API «RequestTimeTooSkewed»

#javascript #amazon-web-services #rest #amazon-s3

#javascript #amazon-веб-сервисы #rest #amazon-s3

Вопрос:

Я пытаюсь инициировать многоступенчатую загрузку в корзину s3 непосредственно из браузера, следуя соответствующим документам AWS. Однако я получаю следующую ошибку ответа:

 <Error>
   <Code>RequestTimeTooSkewed</Code>
   <Message>The difference between the request time and the current time is too large.</Message>
   <RequestTime>20210105T044520315Z</RequestTime>
   <ServerTime>2021-01-05T04:45:21Z</ServerTime>
   <MaxAllowedSkewMilliseconds>900000</MaxAllowedSkewMilliseconds>
   <RequestId>1CB4A7412B51D</RequestId>
   <HostId>Hb2KatQA Liv8lfWLW73dRyPUyCjJez/qwelRyV52r8cd2qXR5dBSpPY=</HostId>
</Error>
 

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

После регистрации времени на консоли для лучшего анализа — я могу фактически подтвердить, что расхождение между временем клиента и сервера составляет менее 9000 миллисекунд.

 **AWS server time** 2021-01-05T04:45:21.000Z

**Client server time** 2021-01-05T04:45:20.544Z
 

Я что-то упустил тривиальное?

Ответ №1:

На основе комментариев.

Проблема была связана с RequestTime отсутствием формата ISO 8601, поскольку формат не использует миллисекунды. В документах aws также написано:

Не включайте миллисекунды в отметку времени.