简介
本文档提供关于基础图片处理的相关的 API 概览以及 SDK 示例代码。
上传时使用图片处理
下面示例展示了如何在上传图片时自动实现图片处理。
图片上传完成后,COS 会存储原始图片和已处理过的图片。后续用户可以通过普通的下载请求获取处理结果。
示例代码
const filePath = "temp-file-to-upload" // 本地文件路径cos.putObject({Bucket: 'examplebucket-1250000000',Region: 'COS_REGION',Key: 'exampleobject',Body: fs.createReadStream(filePath), // 上传文件对象onProgress: function(progressData) {console.log(JSON.stringify(progressData));},Headers: {// 通过 imageMogr2 接口使用图片缩放功能:指定图片宽度为 200,宽度等比压缩'Pic-Operations': '{"is_pic_info": 1, "rules": [{"fileid": "desample_photo.jpg", "rule": "imageMogr2/thumbnail/200x/"}]}'},}, function(err, data) {console.log(err || data);});
对云上数据进行图片处理
下面示例展示了如何对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。
示例代码
cos.request({Bucket: config.Bucket,Region: config.Region,Key: 'exampleobject',Method: 'POST',Action: 'image_process',Headers: {// 通过 imageMogr2 接口使用图片缩放功能:指定图片宽度为 200,宽度等比压缩'Pic-Operations': '{"is_pic_info": 1, "rules": [{"fileid": "desample_photo.jpg", "rule": "imageMogr2/thumbnail/200x/"}]}'},}, function (err, data) {console.log(err || data);});
下载时使用图片处理
下面示例展示了如何在下载图片时实现图片处理。
示例代码
cos.getObject({Bucket: 'examplebucket-1250000000',Region: 'COS_REGION',Key: 'exampleobject',QueryString: `imageMogr2/thumbnail/200x/`,}, function (err, data) {console.log(err || data);fs.writeFileSync('filepath', data.Body); // 将图片内容保存本地});
生成带图片处理参数的签名 URL
示例代码
// 生成带图片处理参数的文件签名 URL,过期时间设置为 30 分钟。var url1 = cos.getObjectUrl({Bucket: 'examplebucket-1250000000',Region: 'COS_REGION',Key: 'exampleobject',Query: {`imageMogr2/thumbnail/200x/`: ''},Expires: 1800,Sign: true,}, function (err, data) {if(data){console.log(data.Url);}});// 生成带图片处理参数的文件 URL,不带签名。var url2 = cos.getObjectUrl({Bucket: 'examplebucket-1250000000',Region: 'COS_REGION',Key: 'exampleobject',Query: {`imageMogr2/thumbnail/200x/`: ''},Sign: false,}, function (err, data) {if(data){console.log(data.Url);}});