Приложение, над которым я работаю, позволяет пользователям создавать компании на карте и загружать связанные изображения.
Я использую облачные функции для изменения размера изображений для различных разрешений экрана и загрузки их обратно в GCS.
Чтобы сделать эти изображения общедоступными, я создаю подписанный URL-адрес, который сохраняется в связанном объекте в базе данных реального времени.
const [signedUrl] = await bucket.file(path).getSignedUrl({
action: "read",
expires: "01-01-2500",
})
До сегодняшнего дня URL-адреса, сгенерированные в соответствии с приведенным выше кодом, позволяли любому просматривать изображения. Затем внезапно все ранее сгенерированные URL-адреса стали недоступными и вместо них отображается следующая ошибка:
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.
</Message>
<StringToSign>
GET 16725225600 /project-name.appspot.com/placeImage%2F300w%2FUPfppRM1ZyjbwBNiakgzyQ%3D%3D.jpg
</StringToSign>
</Error>
Я вижу вышеупомянутое сообщение для всех ранее загруженных изображений. Недавно загруженные изображения можно просматривать просто отлично.
Мой код имитирует этот пример , предоставленный функциями-примерами, однако я беспокоюсь о том, чтобы перенести это в производство, если проблема станет повторяющейся.
Что может быть источником этой проблемы, и есть ли способ защитить себя от нее в будущем?