Rof*_*fls 8 node.js firebase firebase-storage firebase-admin
我可以使用 firebase-admin 通过 nodejs 将文件上传到我的 firebase 存储桶,但是当我转到 firebase UI 时,我无法打开该文件。我注意到通过 firebase UI 上传的文件会自动生成一个访问令牌,但没有通过 nodejs 上传的文件。
我已经尝试了几种方法,例如使用下载令牌设置元数据并在上传文件后公开文件。没有一个奏效。
如何通过 API 调用生成访问令牌,而不必为每个上传的文件点击生成令牌?
我使用下面的命令,它工作得很好
const uuidv4 = require('uuid/v4');
const uuid = uuidv4();
metadata: { firebaseStorageDownloadTokens: uuid }
Run Code Online (Sandbox Code Playgroud)
为了进一步澄清@Rawan-25 的答案,您想要的是:
bucket.upload(filename, {
destination,
metadata: {
metadata :{
firebaseStorageDownloadTokens: uuidv4(),
}
},
})
Run Code Online (Sandbox Code Playgroud)
这是根据这个Github 问题。
截至 2020 年 7 月的完整答案:
在将文件上传到 Firebase Cloud Storage(又名 Google Cloud Storage)时,可以生成 uuid 并将其用作令牌
首先导入这个包:
const uuidv4 = require('uuid/v4');
Run Code Online (Sandbox Code Playgroud)
或者
const { v4: uuidv4 } = require('uuid');
Run Code Online (Sandbox Code Playgroud)
然后,在上传文件之前生成一个唯一的 id:
const uuid = uuidv4();
Run Code Online (Sandbox Code Playgroud)
最后,上传您的文件:
最重要的是嵌入
metadata: { firebaseStorageDownloadTokens: uuid, }
Run Code Online (Sandbox Code Playgroud)
在上传功能的元数据字段中
await admin.storage().bucket().upload(filePath, {
destination: thumbFilePathForUpload,
metadata: {
metadata: {
firebaseStorageDownloadTokens: uuid,
}
},
});
Run Code Online (Sandbox Code Playgroud)
为了检查它是否有效,请直接从 Firebase 控制台单击新上传的文件,您的文件中应该有一个蓝色的可点击链接。您还可以在预览下方的File Location下找到访问令牌。
例如:
归档时间: |
|
查看次数: |
6148 次 |
最近记录: |