Почему AWS S3 отказывается открывать документ из-за значения времени истечения, которое он сам позволил нам использовать для создания предварительно подписанного URL?
S3 этого не допустил. Подписанные URL-адреса генерируются локально, и S3 не видит их и не знает о них (или не проверяет их подлинность или авторизацию для получения указанного объекта), пока вы на самом деле не попытаетесь их использовать.
Вероятно, это лучше всего охарактеризовать как ошибка в boto3 ... Срок действия подписи версии 2 привязан к эпохе Unix, которая заканчивается 2038-01-19T03: 14: 08Z («ошибка Y2.038K»). Это вряд ли будет исправлено на этом этапе, поскольку Подпись V2 устарела .
Теоретически, вы могли бы V2 подписать URL, срок действия которого не истекает до середины января 2038 года, но это не так. Это также жизнеспособно, поскольку подписанные URL-адреса (повторно) проверяются при каждом их использовании. Рекомендуется периодически поворачивать ключи, поэтому идентификатор ключа доступа AWS, который вы используете сегодня, не должен оставаться действительным через 100 лет или даже через 18 лет с настоящего момента до 2038 года. После того, как вы отключите эти конкретные учетные данные, любые URL-адреса они подписаны, больше не будут использоваться.