Node.js环境下如何在Cloudinary上传单图多尺寸版本并获取对应链接
Cloudinary 单图多尺寸同步上传实现方案
你不需要提前裁剪多张图片分别上传,Cloudinary 原生提供上传时预生成指定尺寸衍生图的能力,只需在原上传接口增加 eager 参数配置即可实现需求。
调整后的实现代码
await cloudinary.uploader.upload( imagePath, { // 配置需要预生成的所有尺寸规则 eager: [ { width: 200, height: 200, crop: "fill" }, { width: 500, height: 500, crop: "fill" }, { width: 1080, height: 1080, crop: "fill" } ], // 配置同步生成衍生图,确保回调返回时所有尺寸资源已生成可访问 eager_async: false }, (err, result) => { if (err) { return res.status(400).json({ error: "Failed to upload file", }); } // 提取三个尺寸的访问链接 const sizeUrls = { 200: result.eager[0].secure_url, 500: result.eager[1].secure_url, 1080: result.secure_url // 1080为原图尺寸,直接取原图链接即可 }; console.log(sizeUrls); // 后续可自行处理返回的链接数据 } );
参数说明
crop字段可根据业务需求调整:fill:等比缩放后裁剪多余区域,保证图片严格匹配设定的宽高尺寸,无变形fit:等比缩放至完全适配设定的宽高范围,不裁剪,图片无缺失
- 如果你不需要保留原图,也可以直接把1080x1080的规则放到eager数组里,上传时指定压缩参数降低原图存储成本
内容的提问来源于stack exchange,提问作者Varad Gauthankar
相关产品推荐
相关产品推荐

