router.post('/image', multipartMiddleware , function(req, res) {
var file_name = req.body.name;
var data = req.body.data;
var stream = fs.createReadStream(data); //app crash here
return s3fsImpl.writeFile(file_name , stream).then(function () {
fs.unlink(data, function (err) {
if (err) {
console.error(err);
}
});
res.status(200).end();
});
});
尝试上传base64图片但应用程序会崩溃;如果我跳过该行,我将在S3中获取损坏的图像文件。我在这里使用名为s3fs的软件包https://github.com/RiptideElements/s3fs
答案 0 :(得分:0)
fs.createReadStream
将第一个参数作为文件路径。
例如:/user/x/file.txt
看起来你应该做像
这样的事情var stream = fs.createReadStream(file_name);
答案 1 :(得分:0)
fs.createReadStream
可以抛出多个错误,如果路径未通过,如果不存在等等。
BTW fs.createReadStream
用于从您的文件系统中读取文件。我猜你试图从缓冲区创建一个流。
根据s3fs文档,没有必要这样做。您只需将数据传递给writeFile
尝试
s3fsImpl.writeFile(req.body.name, req.body.data);