有奖捉虫:行业应用 & 管理与支持文档专题 HOT

简介

本文档提供关于盲水印相关的 API 概览以及 SDK 示例代码。
关于盲水印 API 文档,请参见 盲水印

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参见 SDK API

添加盲水印

功能说明

盲水印支持在上传时添加和下载时添加。

示例代码一:上传时添加盲水印

Objective-C
QCloudPutObjectWatermarkRequest* put = [QCloudPutObjectWatermarkRequest new];

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
put.object = @"exampleobject";
// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
put.bucket = @"examplebucket-1250000000";
put.body = [@"123456789" dataUsingEncoding:NSUTF8StringEncoding];
QCloudPicOperations * op = [[QCloudPicOperations alloc]init];

// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = NO;
QCloudPicOperationRule * rule = [[QCloudPicOperationRule alloc]init];

// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
rule.fileid = @"test";

// 盲水印图片在cos上的地址:如 http://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/protection_blind_watermark_icon.png
rule.imageURL = @"watermarkURL"; // 水印文字只能是 [a-zA-Z0-9]
//操作:有效值 :QCloudPicOperationRuleActionPut:添加盲水印 QCloudPicOperationRuleActionExtrac:提取盲水印
rule.actionType =QCloudPicOperationRuleActionPut;
// 盲水印类型,有效值:QCloudPicOperationRuleHalf 半盲;QCloudPicOperationRuleFull: 全盲;QCloudPicOperationRuleText 文字
rule.type = QCloudPicOperationRuleFull;
op.rule = @[rule];
put.picOperations = op;
[put setFinishBlock:^(QCloudPutObjectWatermarkResult *outputObject, NSError *error) {

}];
[[QCloudCOSXMLService defaultCOSXML] PutWatermarkObject:put];
说明
更多完整示例,请前往 GitHub 查看。
Swift
let put = QCloudPutObjectWatermarkRequest<AnyObject>();

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
put.object = "exampleobject";
// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
put.bucket = "examplebucket-1250000000";
put.body = "123456789".data(using: .utf8)! as NSData;
let op = QCloudPicOperations.init();

// 是否返回原图信息。0表示不返回原图信息,1表示返回原图信息,默认为0
op.is_pic_info = false;

let rule = QCloudPicOperationRule.init();

// 处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录

rule.fileid = "test";
//操作:有效值 :QCloudPicOperationRuleActionPut:添加盲水印 QCloudPicOperationRuleActionExtrac:提取盲水印
rule.actionType = .put;

// 盲水印类型,有效值:QCloudPicOperationRuleHalf 半盲;QCloudPicOperationRuleFull: 全盲;QCloudPicOperationRuleText 文字
rule.type = .full;
// 盲水印图片在 cos 上的地址:如 http://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/watermark_icon.png
rule.imageURL = "watermarkURL";
op.rule = [rule];
put.picOperations = op;
put.setFinish { (outoutObject, error) in

};
QCloudCOSXMLService.defaultCOSXML().putWatermarkObject(put);
说明
更多完整示例,请前往 GitHub 查看。

示例代码二:下载时添加盲水印

Objective-C
QCloudGetObjectRequest * request = [QCloudGetObjectRequest new];

// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = @"examplebucket-1250000000";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
request.object = @"exampleobject";

//处理参数,规则参见:https://cloud.tencent.com/document/product/436/46782
request.watermarkRule = @"watermark/3/type/2/image/aHR0cDovL2NpLTEyNTM2NTMzNjcuY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcHJvdGVjdGlvbl9ibGluZF93YXRlcm1hcmtfaWNvbi5wbmc=";

// 设置下载的路径 URL,如果设置了,文件将会被下载到指定路径中
request.downloadingURL = [NSURL fileURLWithPath:@"Local File Path"];

// 本地已下载的文件大小,如果是从头开始下载,请不要设置
request.localCacheDownloadOffset = 100;

// 监听下载结果
[request setFinishBlock:^(id outputObject, NSError *error) {
// outputObject 包含所有的响应 http 头部
NSDictionary* info = (NSDictionary *) outputObject;
}];

// 监听下载进度
[request setDownProcessBlock:^(int64_t bytesDownload,
int64_t totalBytesDownload,
int64_t totalBytesExpectedToDownload) {

// bytesDownload 新增字节数
// totalBytesDownload 本次下载接收的总字节数
// totalBytesExpectedToDownload 本次下载的目标字节数
}];

[[QCloudCOSXMLService defaultCOSXML] defaultCOSXML:request];

说明
更多完整示例,请前往 GitHub 查看。
Swift
let request : QCloudGetObjectRequest = QCloudGetObjectRequest();

// 存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
request.bucket = "examplebucket-1250000000";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
request.object = "exampleobject";

// 设置下载的路径 URL,如果设置了,文件将会被下载到指定路径中
request.downloadingURL = NSURL.fileURL(withPath: "Local File Path") as URL?;

// 本地已下载的文件大小,如果是从头开始下载,请不要设置
request.localCacheDownloadOffset = 100;

//处理参数,规则参见:https://cloud.tencent.com/document/product/436/46782
request.watermarkRule = @"watermark/3/type/2/image/aHR0cDovL2NpLTEyNTM2NTMzNjcuY29zLmFwLWd1YW5nemhvdS5teXFjbG91ZC5jb20vcHJvdGVjdGlvbl9ibGluZF93YXRlcm1hcmtfaWNvbi5wbmc=";

// 监听下载进度
request.sendProcessBlock = { (bytesDownload, totalBytesDownload,
totalBytesExpectedToDownload) in

// bytesDownload 新增字节数
// totalBytesDownload 本次下载接收的总字节数
// totalBytesExpectedToDownload 本次下载的目标字节数
}

// 监听下载结果
request.finishBlock = { (result, error) in
if let result = result {
// result 包含响应的 header 信息
} else {
print(error!);
}
}

QCloudCOSXMLService.defaultCOSXML().getObject(request);
说明
更多完整示例,请前往 GitHub 查看。