gpt4 book ai didi

node.js - 谷歌云函数中的 getSignedURL() 生成可以工作几天的链接,然后返回 "SignatureDoesNotMatch"

转载 作者:行者123 更新时间:2023-12-03 12:11:34 25 4
gpt4 key购买 nike

我的 Firebase 存储 getSignedUrl()下载链接工作几天,然后停止工作。错误信息是

SignatureDoesNotMatch
The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.

去年夏天有一个很长的 discussion在 GitHub 上对此进行了说明,但我没有看到已达成解决方案。

我正在考虑使用 getDownloadURL()从前端而不是使用 getSignedUrl()从后端。是 getDownloadURL()不那么安全 getSignedUrl() ?

这是我的代码,大部分是从 documentation 复制的:

let audioType = 'mp3';
const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucket = storage.bucket('my-app.appspot.com');
var file = bucket.file('Audio/' + longLanguage + '/' + pronunciation + '/' + wordFileType);

// Firebase Storage file options
var options = {
metadata: {
contentType: 'audio/' + audioType,
metadata: {
audioType: audioType,
longAccent: 'United_States',
shortAccent: 'US',
longLanguage: 'English',
shortLanguage: 'en',
source: 'Oxford Dictionaries',
word: word
}
}
};

const config = {
action: 'read',
expires: '03-17-2025',
content_type: 'audio/mp3'
};

function oedPromise() {
return new Promise(function(resolve, reject) {
http.get(oedAudioURL, function(response) {
response.pipe(file.createWriteStream(options))
.on('error', function(error) {
console.error(error);
reject(error);
})
.on('finish', function() {
file.getSignedUrl(config, function(err, url) {
if (err) {
console.error(err);
return;
} else {
resolve(url)
}
});
});
});
});
}

最佳答案

Google Cloud Storage 签名 URL 的最长持续时间为 7 天。但它也可以更短。再也不会了。我猜 Firebase 存储有相同的限制。

关于node.js - 谷歌云函数中的 getSignedURL() 生成可以工作几天的链接,然后返回 "SignatureDoesNotMatch",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55388061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com