Да, это нормальное поведение. Предварительно подписанный URL-адрес - это просто локальный расчет и подписание URL-адреса. Он вообще не взаимодействует со службой S3.
Если вы хотите убедиться, что объект существует до того, как вы создадите для него предварительно подписанный URL-адрес, вам следует head
этот объект.
Примечание: вы можете использовать предварительно подписанные URL-адреса для загрузки новых объектов, которые, очевидно, еще не существуют на момент создания URL-адреса. Возможно, вы также захотите использовать предварительно подписанные URL-адреса для загрузки объектов, которые еще не существуют, но когда-нибудь появятся (хотя я признаю, что это, вероятно, не очень распространенный вариант использования).