【发布时间】:2020-10-18 22:50:55
【问题描述】:
我想将一组图像上传到 cloudinary。我已经设法用 multer 解析文件,将它们作为缓冲区返回。在阅读了文档和 github 问题之后,似乎将缓冲区转换为数据 uri 是一个性能杀手。所以我使用了 cloudinary 的流上传器,但它不起作用。
UnhandledPromiseRejectionWarning: TypeError: size.split is not a function or its return value is not iterable
这是我的代码:
// multer config
const storage = multer.memoryStorage();
const limits = { fileSize: 1000 * 1000 * 4 }; // limit to 4mb
const upload = multer({ storage, limits });
cloudinary.config({
cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET,
});
// upload image
router.post("/upload-images", upload.array("image"), ({files}, res) => {
try {
if (files) {
const imagesUploaded = [];
files.forEach(async (file, i) => {
const image = await cloudinary.uploader
.upload_stream(file, {
resource_type: "image",
public_id: `app/users/${userId}/img${i}`,
crop: "scale",
quality: "auto",
})
.end(file.buffer);
return imagesUploaded.push(image.secure_url);
});
console.log("imagesUpdated", imagesUploaded);
// upload images url to the db
}
} catch (err) {
return res.json(err);
}
});
如何解决这个问题?
【问题讨论】:
-
嘿,你修好了吗?
标签: node.js multer cloudinary