我正在使用文件系统模块流式传输PDF文件,然后访问该文件以供以后使用。当我在编译器中尝试时,它可以工作,但是当我在Dialogflow中进行部署时,它失败并显示错误:
Error: EROFS: read-only file system, open 'filename.pdf' at Error (native)
这是代码:
const fs = require('fs');
const request = require('request');
var downloadRequest = {
url: "http://www.axmag.com/download/pdfurl-guide.pdf",
method: 'GET'
}
var file = fs.createWriteStream("filename.pdf");
request(downloadRequest).pipe(file);
file.on('finish', function(){
var downloadedFile = fs.createReadStream("filename.pdf");
// Other code which accesses 'downloadedFile' takes place below
...
});
有什么办法可以解决这个错误?
答案 0 :(得分:0)
正如我们所讨论的,您正在使用Firebase Functions部署代码。 FF是只读系统,作为其无状态系统的一部分,这意味着您不能持久保存文件(因为这将与无状态系统发生冲突,并且不能保证这些文件在每个执行服务器/环境中都可以持久保存)。 / p>
要动态托管内容,您需要使用其他系统托管文件。这可以通过Firebase cloud storage进行,而不是在进程中进行保存,或者仅将文件内容存储在内存中。