有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

上传时处理

数据万象提供的上传时处理功能可以帮助使用者在上传时实现图片处理。您只需要在请求包头部中加入 Pic-Operations 项并设置好相应参数,就可在图片上传时实现相应的图片处理,并可将原图和处理结果存入到 COS。目前支持20M以内文件处理。

请求语法

POST /files/v2/<Appid>/<Bucket>/<FileName> HTTP/1.1
Host: <Region>.image.myqcloud.com
Content-Type: multipart/form-data
Authorization: <MultiEffectSignature>
Content-Length: <ContentLength>
Pic-Operations: <PicOperations>
说明
COS 简单上传文件接口详见 COS 文档

请求内容

Pic-Operations 为 json 格式的字符串,具体参数如下
参数名称
类型
必选
描述
is_pic_info
Int
是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
rules
Array
处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理
rules(json 数组)中每一项具体参数如下
参数名称
类型
必选
描述
bucket
String
存储结果的目标 bucket 名称,形如 bucketName-appid,如果不指定的话默认保存到当前 bucket
fileid
String
处理结果的文件路径名称,如以’/’开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
rule
String
处理参数,参见数据万象图片处理 API。若按指定样式处理,则以”style/”开头,后加样式名,如样式名为”test”,则rule字段为”style/test”

返回内容

参数名称
类型
描述
code
Number
服务端返回码,如果没有发生任何错误取值为0;如果发生错误该参数指称具体的错误码。COS 服务相关的错误码可以查看 COS 错误码汇总
message
String
服务端提示内容,如果发生错误该字段将详细描述发生错误的情况
request_id
String
该请求的唯一标识 ID
data
Object
服务端返回的应答数据,该内容代表了接口返回的具体的业务数据
data 数据集参数描述:
参数名称
类型
描述
access_url
String
通过 CDN 访问该文件的资源链接(访问速度更快)
resource_path
String
该文件在 COS 中的相对路径名,可作为其 ID 标识。 格式///。推荐业务端存储 resource_path,然后根据业务需求灵活拼接资源 url(通过 CDN 访问 COS 资源的 url 和直接访问 COS 资源的 url 不同)。
source_url
String
(不通过 CDN)直接访问 COS 的资源链接
url
String
操作文件的 url 。业务端可以将该 url 作为请求地址来进一步操作文件,对应 API :文件属性、更新文件、删除文件、移动文件中的请求地址。
image_info
Object
图片处理结果
timecost
Number
耗时,单位 ms
image_info 参数描述:
参数名称
类型
描述
original_info
Object
原图信息,指定返回原图信息时存在
process_results
Array
图片处理结果
original_info 参数描述:
参数名称
类型
描述
format
String
格式
width
Number
图片宽度
height
Number
图片高度
ave
String
图片主色调
orientation
Number
图片旋转角度
quality
Number
图片质量
process_results 数组每一项参数描述:
参数名称
类型
描述
file_id
String
文件名
format
String
格式
width
Number
图片宽度
height
Number
图片高度
size
Number
图片大小
quality
Number
图片质量
access_url
String
通过 CDN 访问该文件的资源链接(访问速度更快)
resource_path
String
该文件在 COS 中的相对路径名,可作为其 ID 标识。 格式///。推荐业务端存储 resource_path,然后根据业务需求灵活拼接资源 url(通过 CDN 访问 COS 资源的 url 和直接访问 COS 资源的 url 不同)。
source_url
String
(不通过 CDN)直接访问 COS 的资源链接
url
String
操作文件的 url 。业务端可以将该 url 作为请求地址来进一步操作文件,对应 API :文件属性、更新文件、删除文件、移动文件中的请求地址。
说明
腾讯云 COS 会默认为每个资源生成经 CDN 的访问链接 access_url,当业务端尚未开通 CDN 时,仍然可以获得该链接,但是无法访问。

示例

请求

POST /files/v2/appid/bucket/sample_file.jpg HTTP/1.1
Host: cd.image.myqcloud.com
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: cos-python-sdk-v4
Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Length: XXXXX
Pic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test1.png","rule":"imageView2/format/png"}]}
Content-Type: multipart/form-data; boundary=6815dbc897af4706bd5a39f49b157928

--6815dbc897af4706bd5a39f49b157928
Content-Disposition: form-data; name="op";

upload
--6815dbc897af4706bd5a39f49b157928
Content-Disposition: form-data; name="filecontent"; filename="filecontent"
返回
{
"code":0,
"message":"SUCCESS",
"request_id":"NTlhNDBhZGVfOTYyMjViNjRfMTc3Ml8yYWQ5NWU=",
"data":
{
"access_url":"http://bucket-appid.file.myqcloud.com/sample_file.jpg",
"resource_path":"/appid/bucket/sample_file.jpg",
"source_url":"http://bucket-appid.cosgz.myqcloud.com /sample_file.jpg",
"url":"http://gz.file.myqcloud.com/files/v2/appid/bucket/sample_file.jpg",
"timecost":500,
"image_info":
{
"original_info":
{
"format": "JPEG",
"height": 200,
"width": 50,
"ave": "0xa18432",
"orientation":1,
"quality":100
},
"process_results":
[
{
"access_url":"http://bucket-appid.file.myqcloud.com/test1.png",
"resource_path":"/appid/bucket/test1.png",
"source_url":"http://bucket-appid.cosgz.myqcloud.com/test1.png",
"url":"http://gz.file.myqcloud.com/files/v2/appid/bucket/test1.png",
"vid":"value",
"file_id":"test1.png",
"format":"PNG",
"height":50,
"width":200,
"size":100200,
"quality":100,
}
]
}
}
注意
上传时处理支持 cos v4 的分片上传功能,在初始化分片上传接口和结束上传分片接口的请求包头部中加入 Pic-Operations 项,即可实现图片处理。
POST /files/v2/<Appid>/<Bucket>/<FileName> HTTP/1.1
Host: <Region>.image.myqcloud.com
Authorization: <MultiEffectSignature>
Content-Type: multipart/form-data
Content-Length: <ContentLength>
Pic-Operations: <PicOperations>
COS 相关接口详见 COS 文档

云上数据处理

数据万象的图片处理 API 能够对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。

请求语法

请求包头部信息如下:
POST /files/v2/<Appid>/<Bucket>/<FileName> HTTP/1.1
Host: <Region>.image.myqcloud.com
Content-Type: multipart/form-data
Authorization: <MultiEffectSignature>
Content-Length: <ContentLength>
Pic-Operations: <PicOperations>
请求包中新增内容:
参数名称
类型
必选
描述
op
String
操作类型,固定值,填 “image_process”
insertOnly
Int
同名文件覆盖选项,有效值:0 覆盖(删除已有的重名文件,存储新上传的文件);1 不覆盖(若已存在重名文件,则不做覆盖,返回“上传失败”)。默认为 不覆盖。

请求内容

Pic-Operations 为 json 格式的字符串,具体参数如下
参数名称
类型
必选
描述
is_pic_info
Int
是否返回原图信息,0 不返回原图信息,1 返回原图信息,默认为 0
rules
Array
处理规则,一条规则对应一个处理结果(目前最多支持五条规则),不填则不进行图片处理
rules(json 数组)中每一项具体参数如下
参数名称
类型
必选
描述
bucket
String
存储结果的目标 bucket 名称,形如 bucketName-appid,如果不指定的话默认保存到当前 bucket
fileid
String
处理结果的文件路径名称,如以’/’开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
rule
String
处理参数,参见数据万象图片处理 API。若按指定样式处理,则以”style/”开头,后加样式名,如样式名为”test”,则rule字段为”style/test”

返回内容

参数名称
类型
描述
code
Number
服务端返回码,如果没有发生任何错误取值为0;如果发生错误该参数指称具体的错误码。COS服务相关的错误码可以查看 COS 错误码汇总
message
String
服务端提示内容,如果发生错误该字段将详细描述发生错误的情况
request_id
String
该请求的唯一标识 ID
data
Object
服务端返回的应答数据,该内容代表了接口返回的具体的业务数据
data 数据集参数描述:
参数名称
类型
描述
image_info
Object
图片处理结果
timecost
Number
耗时,单位 ms
image_info 参数描述:
参数名称
类型
描述
original_info
Object
原图信息
process_results
Array
图片处理结果
original_info 参数描述:
参数名称
类型
描述
format
String
格式
width
Number
图片宽度
height
Number
图片高度
ave
String
图片主色调
orientation
Number
图片旋转角度
quality
Number
图片质量
process_results 数组每一项参数描述:
参数名称
类型
描述
file_id
String
文件名
format
String
格式
width
Number
图片宽度
height
Number
图片高度
size
Number
图片大小
quality
Number
图片质量
access_url
String
通过 CDN 访问该文件的资源链接(访问速度更快)
resource_path
String
该文件在 COS 中的相对路径名,可作为其 ID 标识。 格式///。推荐业务端存储 resource_path,然后根据业务需求灵活拼接资源 url(通过 CDN 访问 COS 资源的 url 和直接访问 COS 资源的 url 不同)。
source_url
String
(不通过 CDN)直接访问 COS 的资源链接
url
String
操作文件的 url 。业务端可以将该 url 作为请求地址来进一步操作文件,对应 API :文件属性、更新文件、删除文件、移动文件中的请求地址。

示例

请求

POST /files/v2/appid/bucket/sample_file.jpg HTTP/1.1
Host: cd.image.myqcloud.com
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: cos-python-sdk-v4
Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Length: XXXXX
Pic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test1.png","rule":"imageView2/format/png"}]}
Content-Type: multipart/form-data; boundary=6815dbc897af4706bd5a39f49b157928

--6815dbc897af4706bd5a39f49b157928
Content-Disposition: form-data; name="op";

image_process
--6815dbc897af4706bd5a39f49b157928
Content-Disposition: form-data; name=" insertOnly";

0
--6815dbc897af4706bd5a39f49b157928—

返回

{
"code":0,
"message":"SUCCESS",
"request_id":"NTlhNDBhZGVfOTYyMjViNjRfMTc3Ml8yYWQ5NWU=",
"data":
{
"timecost":500,
"image_info":
{
"original_info":
{
"format": "JPEG",
"height": 200,
"width": 50,
"ave": "0xa18432",
"orientation":1,
"quality":100
},
"process_results":
[
{
"access_url":"http://bucket-appid.file.myqcloud.com/test1.png",
"resource_path":"/appid/bucket/test1.png",
"source_url":"http://bucket-appid.cosgz.myqcloud.com/test1.png",
"url":"http://gz.file.myqcloud.com/files/v2/appid/bucket/test1.png",
"vid":"value",
"file_id":"test1.png",
"format":"PNG",
"height":50,
"width":200,
"size":100200,
"quality":100,
}
]
}
}