如何在云功能中创建文件并上传到bucket



一段时间以来,我一直在尝试创建一个包含一些文本(helloworld(的文件(sample.txt(,并最终将其上传到一个bucket中。我有办法实现这一点吗?。我尝试的代码如下:

exports.uploadFile = functions.https.onCall(async (data, context) => {
try {
const tempFilePath = path.join(os.tmpdir(), "sample.txt");
await fs.writeFile(tempFilePath, "hello world");
const bucket = await admin.storage().bucket("allcollection");
await bucket.upload(tempFilePath);
return fs.unlinkSync(tempFilePath);
} catch (error) {
console.log(error);
throw new functions.https.HttpsError(error);
}
});

每当运行此代码时,我都会在firebase控制台中收到这样的错误:

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function 
at maybeCallback (fs.js:128:9) 
at Object.writeFile (fs.js:1163:14) 

您没有正确使用fs.writeFile((。从链接的文档中可以看到,它需要3到4个参数,其中一个是回调。错误消息显示您没有通过回调。除此之外,它不会返回promise,因此您无法有效地等待它。请考虑使用fs.writeFileSync((来简化此操作。

相关内容

  • 没有找到相关文章

最新更新