node.js - getSignedUrl 链接未下载
问题描述
我正在为我的网站使用 Firebase 托管和 Firebase 存储。
我正在提供一个特殊的图像 5 分钟并允许用户下载它。
这就是我生成网址的方式:
function getSignedUrl(file) {
console.time('URLGenerated ');
let options = { action: 'read', expires: Date.now() + 5 * 60 * 1000, ResponseContentType: 'binary/octet-stream' }; // 5min Expiration Time
let bucketFileName = path.basename(file);
return bucket.upload(file, { destination: `public/${bucketFileName}` })
.then(() => {
return bucket.file(`public/${bucketFileName}`).getSignedUrl(options)
.then((urls) => {
fs.unlinkSync(file);
console.timeEnd('URLGenerated ');
return urls[0];
})
.catch((e) => {
console.log('Link Generation Error' + e);
});
}).catch((e) => console.log(e));
}
生成 URL,我把它放在这样的锚标记中:
<a class="submitBtn" download="" href="https://firebasestorage.googleapis.com/v0/b/ecutter-web.appspot.com/o/15737172127732.jpg?alt=media&token=4bdf0705-9621-4117-8e65-fdd05ea7920d">Download</a>
现在图像没有开始下载它正在导航到 URL。
如何使用它提供的文件名下载图像?
解决方案
推荐阅读
- javascript - 开玩笑预期动作测试失败
- angular - 如何在 Angular 8 中将 Ag-Grid 从版本 21 迁移到版本 22
- linux - 文件内容到 Windows 变量中 - PowerShell
- excel - VBA 是否可以创建一个自动更新的条件格式表?
- phonegap - 桌面无法正常启动
- ant-design-pro - Ant Design Pro 动态菜单不显示
- laravel - 在 laravel 中进行自定义验证
- dataweave - 如何在循环内循环以从 XML 映射到 CSV
- linux - 如果一个进程从一个 setuid 二进制分叉开始,并且子进程放弃了特权,那么子进程仍然可以信任吗?
- azure - Databricks Delta Lake + ADSL + Presto