简介
本文档提供关于图片压缩接口的相关的 API 概览以及 SDK 示例代码。
注意:
COS Node.js SDK 版本需要大于等于 v2.12.6。
上传时使用图片压缩
下面示例展示了如何在上传图片时自动实现图片压缩。
图片上传完成后,COS 会存储原始图片和已压缩过的图片。后续用户可以通过普通的下载请求获取处理结果。
示例代码
var config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};var filename = 'example_photo.png'var filepath = path.resolve(__dirname, filename);cos.putObject({Bucket: config.Bucket, // Bucket 格式:test-1250000000Region: config.Region,Key: filename,Body: fs.readFileSync(filepath),Headers: {// 通过 imageMogr2 接口进行 avif 压缩,可以根据需要压缩的类型填入不同的压缩格式:webp/heif/tpg/avif/svgc'Pic-Operations':'{"is_pic_info": 1, "rules": [{"fileid": "desample_photo.avif", "rule": "imageMogr2/format/webp"}]}',},onTaskReady: function (tid) {TaskId = tid;},onProgress: function (progressData) {console.log(JSON.stringify(progressData));},}, function (err, data) {console.log(err || data);});
对云上数据进行图片压缩
下面示例展示了如何在对已存储在 COS 的图片进行相应压缩操作,并将结果存入到 COS。
示例代码
var config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};var filename = 'example_photo.png';cos.request({Bucket: config.Bucket,Region: config.Region,Key: filename,Method: 'POST',Action: 'image_process',Headers: {// 通过 imageMogr2 接口进行 avif 压缩,可以根据需要压缩的类型填入不同的压缩格式:webp/heif/tpg/avif/svgc'Pic-Operations':'{"is_pic_info": 1, "rules": [{"fileid": "desample_photo.avif", "rule": "imageMogr2/format/avif"}]}',},}, function (err, data) {console.log(err || data);});
下载时使用图片压缩
下面示例展示了如何在下载图片时实现图片压缩。
示例代码
var config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};var filepath = path.resolve(__dirname, 'example_photo_ci_result.avif');cos.getObject({Bucket: config.Bucket,Region: config.Region,Key: 'example_photo.png',QueryString: `imageMogr2/format/avif`, // 可以根据需要压缩的类型填入不同的压缩格式:webp/heif/tpg/avif/svgc},function (err, data) {if(data){fs.writeFileSync(filepath, data.Body);} else {console.log(err);}},);