Мои подписанные URL-адреса загрузки из моего облачного хранилища завершаются неудачно через три дня. Я думаю, что я исправил проблему, поэтому этот вопрос может быть решением для других. Спросите меня через три дня, сработало ли это решение!
Вот полное сообщение об ошибке:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<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 1742169600 /languagetwo-cd94d.appspot.com/Audio%2FSpanish%2FLatin_America-Sofia-Female-IBM%2Fagua.mp3
</StringToSign>
</Error>
Я погуглил сообщение об ошибке и увидел, что проблема в Content-Type
. Я не указываю Content-Type
в своем коде при загрузке файлов в хранилище. Когда я устанавливаю contentType
в коде, при загрузке URL-адресов загрузки происходит сразу же, с тем же сообщением об ошибке. Это говорит о том, что я на правильном пути.
file.getSignedUrl({
action: 'read',
expires: '03-17-2025',
contentType: 'audio/mp3'
})
Дата истечения срока действия в URL-адресах для загрузки - 17 марта 2025 года, так что это не проблема.
Документация Google по Подписанные URL говорит, что синтаксис Content_Type
. В документации IETF для content-type говорится, что синтаксис Content-Type
. Я пытался
file.getSignedUrl({
action: 'read',
expires: '03-17-2025',
content_type: 'audio/mp3'
})
и мои файлы загружаются и воспроизводятся. Я не хочу ждать три дня, чтобы увидеть, продолжают ли они работать, поэтому, пожалуйста, дайте мне знать, если что-то еще нужно исправить!
Просто ради ухмылки я попробовал
file.getSignedUrl({
action: 'read',
expires: '03-17-2025',
content-type: 'audio/mp3'
})
и firebase deploy
не примут код. Дефис не разрешен в ключах.
Документация Google по подписанным URL-адресам гласит
As needed. If you provide a content-type, the client (browser) must provide this HTTP header set to the same value.
As needed
отличается от Optional
.
Мои .mp3
файлы и мои .webm
URL-адреса для загрузки не работают, поэтому не имеет значения, какое содержимое файлов.