为什么使用axios,multer,cloudinary. get上传文件/图像时出错:EROFS:只读文件系统

d5vmydt9  于 2023-04-11  发布在  iOS
关注(0)|答案(1)|浏览(155)

在这个MERN应用程序。localhost完美的工作。但这是托管到循环然后错误这个。当我上传图像在API使用axios与formdata。响应得到

Error: EROFS: read-only file system, open '/var/task/src/public/images/images-168.jpg

这是我的多重配置

const multer = require("multer");
const path = require("path");
const fs = require("fs");

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, path.join(__dirname, "../public/images"));
  },
  filename: function (req, file, cb) {
    const uniquesuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
    cb(null, file.fieldname + "-" + uniquesuffix + ".jpeg");
  },
});

const multerFilter = (req, file, cb) => {
  if (file.mimetype.startsWith("image")) {
    cb(null, true);
  } else {
    cb("Unsupported file format", false);
    // cb(new Error("Wrong extension type"), false);
  }
};

exports.uploadPhoto = multer({
  storage: storage,
  fileFilter: multerFilter,
  limits: { fileSize: 2000000 },
});

最后我上传到cloudinary的图片。
我想获得响应状态200和类别创建成功。

zzwlnbp8

zzwlnbp81#

Multer destination必须在/tmp目录中,这是唯一保证工作的位置。这是一个正常的问题...
循环文件系统文档为here;您可以阅读:
“一旦项目部署到Cyclic.sh,fs模块创建的文件是只读的。这将导致EROFS:错误只读文件系统错误。”

相关问题