本文提供了Node.js SDK设置水印的操作步骤及完整的代码示例。
操作步骤
- 创建client实例。
var RPCClient = require('@alicloud/pop-core').RPCClient; var client = initVodClient('<Your AccessKeyId>', '<Your AccessKeySecret>', '<YourRegionId>');
- 设置水印参数。
- 图片水印
// Image Watermark var imageWatermarkInput={ Location:ossLocation, Bucket: ossBucket, Object:encodeURIComponent(imageWatermarkObject), WaterMarkTemplateId:watermarkTemplateId, Type: 'Image', InputFile: imageWatermarkInput, ReferPos: 'TopRight', Width: '0.05', Dx: '0', Dy: '0' }
- 文字水印
// Text Watermark var textConfig={ // 需传入Base64后的Content值 Content:"5rWL6K+V5paH5a2X5rC05Y2w", FontName:"SimSun", FontSize:"16", FontColor:"Red", FontAlpha:"0.5", Top:"10", Left:"10", } var textWatermark={ WaterMarkTemplateId:watermarkTemplateId, Type:"Text", TextWaterMark:JSON.stringtify(textConfig) }
- 视频水印
// Video Watermark var videoWatermarkInput={ Location: ossLocation, Bucket: ossBucket Type: Image, Object, JSON.stringtify(videoWatermarkObject) InputFile: videoWatermarkInput, ReferPos: "BottomLeft", Height: "240", Dx: "0", Dy: "0" }
- 图片水印
- 发起API请求并显示返回值。
var reponse=client.request("SubmitJobs",params, options); console.log(reponse.RequestId) if(response.JobResultList.JobResult[0].Success){ console.log(response.JobResultList.JobResult[0].Job.JobId); } else { console.log("SubmitJobs Failed code:" + response.data.Code + " message:" + response.data.Message); }
var RPCClient = require('@alicloud/pop-core').RPCClient;
function initMtsClient(accessKeyId, accessKeySecret, regionId) {
var client = new RPCClient({
accessKeyId: accessKeyId,
accessKeySecret: accessKeySecret,
endpoint: 'http://mts.' + regionId + '.aliyuncs.com',
apiVersion: '2014-06-18'
});
return client;
}
var accessKeyId = 'xxx';
var accessKeySecret = 'xxx';
var RegionId = 'cn-beijing';
var watermarkTemplateId = "xxx"; //自己之前创建的水印模板id
var templateId = "S00000001-200030";
var ossBucket = "xxx";
var ossInputObject = "xxx";
var ossOutputObject = "xxx";
var imageWaterMarkObject = "logo.png";
var videoWatermarkObject = "watermark.mov";
var ossLocation = "xxx";
var pipelineId = 'xxx';
var client = initMtsClient(accessKeyId, accessKeySecret, RegionId);
var input = {
Location: ossLocation,
Bucket: ossBucket,
Object: encodeURIComponent(ossInputObject),
};
var imageWatermarkInput = {
Location: ossLocation,
Bucket: ossBucket,
Object: encodeURIComponent(imageWaterMarkObject)
};
var imageWatermark = {
WaterMarkTemplateId: watermarkTemplateId,
Type: "Image",
InputFile: imageWatermarkInput,
ReferPos: 'TopRight',
Width: "0.05",
Dx: "0",
Dy: "0"
};
//参数可以自己选
var textConfig = {
//需传入Base64后的Content值
Content: "5rWL6K+V5paH5a2X5rC05Y2w",
FontName: "SimSun",
FontSize: "16",
FontColor: "Red",
FontAlpha: "0.5",
Top: "10",
Left: "10",
};
var textWatermark = {
WaterMarkTemplateId: watermarkTemplateId,
Type: "Text",
TextWaterMark: JSON.stringify(textConfig)
};
var videoWatermarkInput = {
Location: ossLocation,
Bucket: ossBucket,
Object: encodeURIComponent(videoWatermarkObject)
};
//参数可以自己选
var videoWatermark = {
WaterMarkTemplateId: watermarkTemplateId,
Type: "Image",
InputFile: videoWatermarkInput,
ReferPos: "BottomLeft",
Height: "240",
Dx: "0",
Dy: "0"
};
var output = {
OutputObject: encodeURIComponent(ossOutputObject),
TemplateId: templateId,
};
var waterMarks = new Array();
waterMarks.push(imageWatermark);
waterMarks.push(textWatermark);
waterMarks.push(videoWatermark);
output.WaterMarks = waterMarks;
var outputs = new Array();
outputs.push(output);
client.request('SubmitJobs', {
Input: JSON.stringify(input),
Outputs: JSON.stringify(outputs),
OutputBucket: ossBucket,
PipelineId: pipelineId,
OutputLocation: ossLocation
}, {}).then(function (response) {
console.log('Response requestId: = ' + response.RequestId);
console.log('JobID: ' + response.JobResultList.JobResult[0].Job.JobId);
}).catch(function (response) {
console.log(JSON.stringify(response));
});