Javascript 如何在云函数中创建文件并上传到bucket
一段时间以来,我一直在尝试创建一个包含一些文本(hello world)的文件(sample.txt),并最终将其上传到一个bucket中。有什么方法可以实现这一点吗?。我的尝试代码如下:Javascript 如何在云函数中创建文件并上传到bucket,javascript,node.js,firebase,google-cloud-functions,google-cloud-storage,Javascript,Node.js,Firebase,Google Cloud Functions,Google Cloud Storage,一段时间以来,我一直在尝试创建一个包含一些文本(hello world)的文件(sample.txt),并最终将其上传到一个bucket中。有什么方法可以实现这一点吗?。我的尝试代码如下: exports.uploadFile = functions.https.onCall(async (data, context) => { try { const tempFilePath = path.join(os.tmpdir(), "sample.txt");
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)
你没有正确使用。从链接文档中可以看到,它需要3或4个参数,其中一个是回调。错误消息表示您没有通过回调。最重要的是,它不会返回一个承诺,所以你不能有效地等待它。请考虑使用,以使这更容易。< /P>请编辑问题,以解释究竟什么是不与您现在的代码,包括任何调试信息,你有。我建议你读一读,我一定会读的