我一直在尝试从过去2天中获取下载URL。我进行了很多搜索以获取正确的答案,但是我得到了所有较旧且不清楚的答案。我找不到任何新的/完美的答案,这就是为什么我在这里发布此问题。
我正在通过firebase功能通过admin-SDK将base64映像上传到firebase存储。下面是我用来将base64上传到Firebase存储的代码。
base64 = "mybase64imagestring";
let bufferStream = new stream.PassThrough();
bufferStream.end(new Buffer.from(base64, 'base64'));
// Retrieve default storage bucket
let bucket = admin.storage().bucket();
// Create a reference to the new image file
let file = bucket.file(`/jk_${dish.createdAt}.jpg`);
bufferStream.pipe(file.createWriteStream({
metadata: {
contentType: 'image/jpeg'
}
}))
.on('error', error => {
reject(`Error while uploading picture ${JSON.stringify(error)}`);
})
.on('finish', () => {
// The file upload is complete and i want to get download URL(which is not public and should not expire) here.
});
我尝试使用方法“ getSignedUrl”来获取here所述的下载URL,但是我在评论中以及在其他一些由getSignedUrl()
检索到的链接上也发现了一个星期。我想要一个永久链接,该链接至少一个月不会过期。我发现某个地方可以使用不会过期的公共链接,但找不到任何方法来检索它。另外,我不想破坏安全性,所以我不想存储公共链接。
获得该链接后,我将其存储在数据库中,并从数据库中通过该链接访问图像。这就是为什么我希望链接不会过期。
有没有人可以帮助我解决这个问题?