我需要在节点中处理一个文件,以便从该文件中提取一些文本,我的问题是,因为我是新来的节点,我不知道如何传递文件的路径。我正在使用Firebase的cloud函数,所以没有服务器,因此没有文件的目录。有解决方案吗?比如使用url链接?
下面是我的Node JS代码:
exports.extractTextFromPDF = functions
.https.onCall((data, context) => {
const bucket = firebase.storage().bucket()
const file = bucket.file(data.pathLink) //data.pathlink is 'my-pdf.pdf' which is a file inside my storage
return file.download()
.then(data => {
return pdfParse(data[0])
})
.then(data => {
file.delete()
.then(() => {
return data.text
})
.catch(err => console.log(err))
})
.catch(err => console.log(err))
})
我知道我可以只传递路径到一个文件在我的服务器,但我没有服务器!我可以使用一个网址链接代替?
如果这不可能,是否可以在前端上传一个文件,然后在节点中传递该文件?
我试过很多方法:
1.我尝试过传递url链接而不是文件路径-不起作用
1.我尝试将firebase存储桶路径作为文件路径传递-不起作用
1.我试过从前端上传文件并将其作为文件路径传递到节点-也不起作用
1条答案
按热度按时间1mrurvl11#
如本官方云函数sample所示,您可以使用云函数的临时目录作为本地磁盘存储。
如文档中所述,在结束云功能之前,应删除临时文件:
临时目录中的本地磁盘存储是内存中的文件系统。您写入的文件会消耗函数可用的内存,有时会在调用之间持续存在。未能显式删除这些文件可能最终导致内存不足错误和随后的冷启动。
文档还提醒我们应该使用独立于平台/操作系统的方法来构造文件路径。通过遵循示例中提供的方法,您将遵循此建议。