前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >智能云上手指南:如何使用万象优图服务的 Python SDK

智能云上手指南:如何使用万象优图服务的 Python SDK

原创
作者头像
腾讯云开发者社区
修改2017-10-18 16:34:47
2.6K0
修改2017-10-18 16:34:47
举报
文章被收录于专栏:腾讯云开发者社区头条

6 月 21 日,腾讯云在 2017「云+未来」峰会上推出了战略新品——智能云,宣布将腾讯积累近 20 年的 AI 能力向政府、企业和开发者开放,其中首批开放计算机视觉、智能语音识别、自然语言处理的三大核心能力。腾讯云技术社区陆续推出了系列文章,向普通开发者分享如何快速接入并使用这三大 AI 能力,节省自身的开发成本,同时极大提升开发效率和用户体验。

本文将为广大云开发者介绍如何使用万象优图服务的 Python SDK。

1、开发准备

在使用万象优图服务的 python sdk 前,你需要先下载 python sdk,下载地址:github地址

1.1 前期准备

获取项目ID(appid),bucket,secret_id和secret_key;

1.2 获取SDK方法

  • pip获取:

在开发环境命令行直接执行下面的命令即可导入 python-sdk 包。

pip install tencentyun

然后,参考api说明和sdk中提供的sample,开发代码即可。sample对应v1版本的restful api, samplev2对应v2版本的restful api。

  • 直接下载源码集成:

您也可以直接下载github上提供的源代码,集成到您的开发环境即可(依赖requests)。

2、 API详细说明

2.1 生成签名

1.接口说明

签名生成方法,可以在服务端生成签名,供移动端app使用。

其中签名分为2种: 多次有效签名(有一定的有效时间) 单次有效签名(绑定资源url,只能生效一次) 签名的详细描述及使用场景参见鉴权服务技术方案

2. 方法

签名函数会自动根据传入的URL,进行不同方式的签名,这里对使用者是透明的。

V2加强版的签名:

def get_app_sign_v2(bucket, fileid, expired)

V2版本的签名:

def app_sign_v2(self, url, expired=0)

V1版本的签名:

def app_sign(self, url, expired=0)

3. 参数和返回值

参数说明:

参数名

类型

必须

默认值

参数描述

url

String

需要操作的url

expired

Int

签名过期时间戳

返回值:

参数名

类型

参数描述

httpcode

Int

http响应码,请求正常时为200

code

Int

API 错误码,成功时为0

message

String

API错误信息

data

Array

API 返回数据

data.sign

String

签名串

示例代码:

代码语言:javascript
复制
# 生成私密下载url
auth = tencentyun.Auth(secret_id,secret_key)
expired = int(time.time()) + 999
sign = auth.get_app_sign_v2(bucket, fileid, expired)
download_url = statRet['data']['download_url']
print 'download_url:', download_url + '?sign=' + sign

# 生成上传签名
fileid = 'sample'+str(int(time.time()))
expired = int(time.time()) + 999
sign = auth.get_app_sign_v2(bucket, fileid, expired)
print fileid, sign

2.2 图片上传

1. 接口说明

用于图片的上传,调用者可以通过此接口上传图片并获得图片的url和唯一标识fileid(用于调用其他api)。

2. 方法

代码语言:javascript
复制
def upload(self, filepath, bucket, fileid='', userid='0', magic_context='', params={})
def upload_binary(self, file_binary, bucket, fileid = '', userid = '0', magic_context = '', params = {})

3. 参数和返回值

参数说明:

参数名

类型

必须

默认值

参数描述

filePath

String

本地图片文件路径

file_binary

String

base64编码后的字符串数据

bucket

String

空间名称

fileid

String

用户自定义文件名

userid

String

0

开发者的账号体系的userid, 如果没有,请使用默认值0

magicContext

String

上传成功后,用户自定义的回调参数

params

array

空数组

可选处理项,目前支持params[‘get’] => array() 用于指定上传是url中携带的get请求参数

返回值:

参数名

类型

参数描述

httpcode

Int

http响应码,请求正常时为200

code

Int

API 错误码,成功时为0

message

String

API错误信息

data

Dict

API 返回数据

data.url

String

图片的管理URL

data.downloadUrl

String

图片的下载和访问URL

data.fileid

String

图片的唯一ID

data.info.0.0.width

int

图片宽度

data.info.0.0.height

int

图片高度

示例代码:

代码语言:javascript
复制
image = tencentyun.ImageV2(appid,secret_id,secret_key)
  obj = image.upload('/tmp/amazon.jpg', bucket, fileid);
  print obj

2.3 图片复制

1. 接口说明

用于图片的复制,调用者可以通过此接口复制已经上传的图片并获得新图片的url和唯一标识fileid(用于调用其他api)。

2. 方法

代码语言:javascript
复制
def copy(self, bucket, fileid, userid='0')

3. 参数和返回值

参数说明:

参数名

类型

必须

默认值

参数描述

bucket

String

空间名称

fileid

String

图片唯一ID

userid

String

0 开发者的账号

体系的userid, 如果没有,请使用默认值0

返回值:

参数名

类型

参数描述

httpcode

Int

http响应码,请求正常时为200

code

Int

API 错误码,成功时为0

message

String

API错误信息

data

Dict

API 返回数据

data.downloadUrl

String

图片的下载和访问URL

data.url

String

管理url

示例代码:

代码语言:javascript
复制
// 复制
  copyRet = image.copy(bucket, fileid)
  download_url = copyRet['data']['download_url']
  print copyRet

2.4 图片查询

1. 接口说明

用于图片的查询,调用者可以通过此接口查询已经上传的图片并获得图片的各种参数信息。

2. 方法

def stat(self, bucket, fileid, userid='0')

3. 参数和返回值

参数说明:

参数名

类型

必须

默认值

参数描述

bucket

String

空间名称

fileid

String

图片唯一ID

userid

String

0

开发者的账号体系的userid, 如果没有,请使用默认值0

返回值:

参数名

类型

参数描述

httpcode

Int

http响应码,请求正常时为200

code

Int

API 错误码,成功时为0

message

String

API错误信息

data

Dict

API 返回数据

data.downloadUrl

String

图片的下载和访问URL

data.url

String

管理url

data.fileid

String

图片的唯一ID

data.upload_time

String

图片的上传时间

data.size

String

图片的大小(Bytes)

data.md5

String

图片的md5值

data.md5

String

图片的md5值

data.width

String

图片的宽度(pixels)

data.height

String

图片的高度(pixels)

示例代码:

代码语言:javascript
复制
 // 查询管理信息
  statRet = image.stat(bucket, fileid)

2.5 图片删除

1. 接口说明

用于图片的删除,调用者可以通过此接口删除已经上传的图片。

2. 方法

def delete(self, bucket, fileid, userid='0')

3. 参数和返回值

参数说明:

参数名

类型

必须

默认值

参数描述

bucket

String

空间名称

fileid

String

图片唯一ID

userid

String

0

开发者的账号体系的userid, 如果没有,请使用默认值0

返回值:

参数名

类型

参数描述

httpcode

Int

http响应码,请求正常时为200

code

Int

API 错误码,成功时为0

message

String

API错误信息

data

Dict

空字典

示例代码:

print image.delete(bucket, fileid)

2.6 图片下载

图片的下载直接使用图片下载url进行下载,

请求示例:

代码语言:javascript
复制
GET test0706-10000037.image.myqcloud.com/tencentyunRestfulAPITest HTTP/1.1
Host: test0706-10000037.image.myqcloud.com

如果在控制台上面设置了空间样式或者样式下载别名,并且设置了样式分隔符,则访问样式图片的方式如下:

download_url+样式分隔符+样式名。

注:空间样式和样式下载别名的名字统称样式名。 例如设置了样式名“160x160.jpeg”,样式分隔符“/”,则样式图片的访问方式如下:

代码语言:javascript
复制
GET v2test-10000812.image.myqcloud.com/tencentyunRestfulAPITest/160x160.jpeg HTTP/1.1
Host: v2test-10000812.image.myqcloud.com/

若开启了token防盗链,图片下载只能是私密下载,即必须download_url +?sign=[签名]。 请求示例:

代码语言:javascript
复制
GET http://test0706-10000037.image.myqcloud.com/951b0e3b-db35-40e2-8c31-ed38dab5ae69?sign=Ea5aPdBMeVm5O
T332nSYh1nqyJhhPTEwMDAwMDM3JmI9dGVzdDA3MDYmaz1BS0lEcG9LQmZNSzdhWWNZTmxxeG5FdFlBMWFqQXFqaTJQN1QmZT0xNDQy
MjE0NzMwJnQ9MTQ0MTg1NDczMCZyPTE0NDE4NTQ3MzAmdT0wJmY9 HTTP/1.1
Host: test0706-10000037.image.myqcloud.com

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、开发准备
  • 2、 API详细说明
    • 2.1 生成签名
      • 2.2 图片上传
        • 2.3 图片复制
          • 2.4 图片查询
            • 2.5 图片删除
              • 2.6 图片下载
              相关产品与服务
              云开发 CloudBase
              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档