我目前有问题下载到函数tmp dir下面是我的代码。函数返回函数执行时间为6726 ms,已完成,状态为:“crash”
export async function donwloadExternalFile(url:string, fileName:string) {
try {
const axios = await import('axios')
const fs = await import('fs')
const workingDir = join(tmpdir(), 'downloadedFiles')
const tmpFilePath = join(workingDir, fileName)
const writer = fs.createWriteStream(tmpFilePath);
const response = await axios.default.get(url, { responseType: 'stream' })
response.data.pipe(writer);
await new Promise((resolve, reject) => {
writer.on('error', err => {
writer.close();
reject(err);
});
writer.on('close', () => {
resolve();
});
});
return
} catch (error) {
throw error
}
}
如上面的注释部分所述,您可以使用云存储Node.js SDK将文件上传到云存储。
请看一下SDK客户端参考文档,在这里您可以找到关于这个云存储客户端库的大量示例和更多信息。
另外,我要提醒您,您可以通过使用管道来绕过对/tmp的写入。根据Cloud Functions的文档,“您可以通过创建读取流、通过基于流的进程传递文件,并将输出流直接写入云存储来处理云存储上的文件。”
如何将 Firebase 存储文件的下载网址推送到 Firestore 云?我有一个可以将PDF文件上传到Firestore存储的项目,但我无法将上传文件的下载URL推送到Firestore云。 我需要捕获每个文件的上传URL并将其发送到消防库中的文档才能下载它。我正在上传和下载 PDF 文件。 这是我的代码:
谁能帮帮我吗?
如何获得下载URL? 我有点糊涂了。现在,我被困在修改后的功能更新。下面是我对管理的初始化。
但事实证明,Firebase无法从服务器端上传文件,正如它在文档中明确说明的那样: Firebase存储不包括在服务器端Firebase npm模块中。相反,您可以使用gcloud Node.js客户机。 我的第二次尝试是使用库,就像文档中提到的:
我知道在谷歌云存储中,你可以使用签名的URL,这是有时间限制的(还是不做真正的授权)。但是我在Firebase存储文档中没有看到任何关于的内容。我在关于Firebase存储的文章中看到过它,但从未直接在Firebase的文档中看到过。 据我所知,没有办法对访问Firebase存储文件进行真正的用户授权。请告诉我我错了。