腾讯云 万象优图(Cloud Image) SDK for Go
go sdk for picture cloud service of tencentyun.
go get github.com/tencentyun/go-sdk
###PicUrlInfo 上传和复制api返回的图片资源链接信息
type PicUrlInfo struct {
Url string //图片的资源url
DownloadUrl string //图片的下载url
Fileid string //图片资源的唯一标识
}
###PicInfo 图片本身的属性信息,可以通过查询api获得
type PicInfo struct {
Url string //图片的资源url
Fileid string //图片资源的唯一标识
UploadTime uint //图片的上传时间
Size uint //图片大小,单位字节
Md5 string //图片的md5
Width uint //图片宽度
Height uint //图片高度
}
###PornDetectInfo 黄图识别的结果信息
type PornDetectInfo struct {
Result int //供参考的识别结果,0正常,1黄图,2疑似图片
Confidence float64 //识别为黄图的置信度,范围0-100;是normal_score, hot_score, porn_score的综合评分
PornScore float64 //图片为色情图片的评分
NormalScore float64 //图片为正常图片的评分
HotScore float64 //图片为性感图片的评分
ForbidStatus int //封禁状态,0表示正常,1表示图片已被封禁(只有存储在万象优图的图片才会被封禁)
}
1. 在腾讯云 申请业务的授权
授权包括:
APP_ID
SECRET_ID
SECRET_KEY
2.0版本的云服务在使用前,还需要先创建空间。在使用2.0 api时,需要使用空间名(Bucket)。
import "github.com/tencentyun/go-sdk"
如果要使用图片,需要创建图片操作类对象
//v1版本
cloud := qcloud.PicCloud{appid, sid, skey, ""}
//v2版本
cloud := qcloud.PicCloud{appid, sid, skey, bucket}
在创建完对象后,根据实际需求,调用对应的操作方法就可以了。sdk提供的方法包括:签名计算、上传、复制、查询、下载和删除等。
version := cloud.Version()
如果需要上传图片,根据不同的需求,可以选择不同的上传方法
//pic_info是上传的返回结果
//最简单的上传接口,提供图片路径即可
pic_info, err := cloud.UploadFile(filepath)
//支持自定义fileid的上传文件接口
pic_info, err := cloud.UploadFileWithFileid(filepath, fileid)
//使用字节数组[]byte的上传接口
pic_info, err := cloud.Upload(picData)
//使用字节数组[]byte且自定义fileid的上传接口
pic_info, err := cloud.UploadWithFileid(picData, fileid)
info, err := cloud.Copy(fileid)
pic_info, err := cloud.Stat(fileid)
err = cloud.Delete(userid, fileid)
下载图片直接利用图片的下载url即可,开发者可以自行处理。 如果开启了防盗链,还需要在下载url后面追加签名,如果要自行处理,请参考腾讯云的wiki页,熟悉鉴权签名的算法。
//单图片Url鉴黄
url := "http://b.hiphotos.baidu.com/image/pic/item/8ad4b31c8701a18b1efd50a89a2f07082938fec7.jpg"
detectInfo, err := cloud.PornDetect(url)
//多图片Url鉴黄
pornUrl := []string{
"http://b.hiphotos.baidu.com/image/pic/item/8ad4b31c8701a18b1efd50a89a2f07082938fec7.jpg",
"http://c.hiphotos.baidu.com/image/h%3D200/sign=7b991b465eee3d6d3dc680cb73176d41/96dda144ad3459829813ed730bf431adcaef84b1.jpg",
}
pornUrlRes, err := cloud.PornDetectUrl(pornUrl)
//多图片文件鉴黄
pornFile := []string{
"D:/porn/test1.jpg",
"D:/porn/test2.jpg",
"../../../../../porn/测试.png",
}
pornFileRes, err := cloud.PornDetectFile(pornFile)
请阅读test/demo.go示例 对于v2版本的图片api,请参考demoV2.go
黄图识别新增多图片Url和多图片内容的支持。
修复黄图识别bug。
增加对黄图识别api的支持。
对fileid进行urlencode,支持slash slash能力需要后台服务支持
支持2.0版本的图片restful api。内部实现了高度封装,对开发者透明。
new features: 增加上传图片的模糊识别和美食识别功能接口
new features: 增加视频上传、查询、删除功能
new features: 增加本地签名生成和校验的函数
调整github上的包结构 调整代码规范
稳定版本,支持图片云的基本api。 包括图片的上传、下载、复制、查询和删除。