上传时处理
数据万象提供的上传时处理功能可以帮助使用者在上传时实现图片处理。您只需要在请求包头部中加入 Pic-Operations 项并设置好相应参数,就可在图片上传时实现相应的图片处理,并可将原图和处理结果存入到 COS。目前支持20M以内文件处理。
请求语法
POST /files/v2/<Appid>/<Bucket>/<FileName> HTTP/1.1Host: <Region>.image.myqcloud.comContent-Type: multipart/form-dataAuthorization: <MultiEffectSignature>Content-Length: <ContentLength>Pic-Operations: <PicOperations>
说明
请求内容
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 | |
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.1Host: cd.image.myqcloud.comConnection: keep-aliveAccept-Encoding: gzip, deflateAccept: */*User-Agent: cos-python-sdk-v4Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXContent-Length: XXXXXPic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test1.png","rule":"imageView2/format/png"}]}Content-Type: multipart/form-data; boundary=6815dbc897af4706bd5a39f49b157928--6815dbc897af4706bd5a39f49b157928Content-Disposition: form-data; name="op";upload--6815dbc897af4706bd5a39f49b157928Content-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.1Host: <Region>.image.myqcloud.comAuthorization: <MultiEffectSignature>Content-Type: multipart/form-dataContent-Length: <ContentLength>Pic-Operations: <PicOperations>
COS 相关接口详见 COS 文档
云上数据处理
数据万象的图片处理 API 能够对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。
请求语法
请求包头部信息如下:
POST /files/v2/<Appid>/<Bucket>/<FileName> HTTP/1.1Host: <Region>.image.myqcloud.comContent-Type: multipart/form-dataAuthorization: <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 | |
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.1Host: cd.image.myqcloud.comConnection: keep-aliveAccept-Encoding: gzip, deflateAccept: */*User-Agent: cos-python-sdk-v4Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXContent-Length: XXXXXPic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test1.png","rule":"imageView2/format/png"}]}Content-Type: multipart/form-data; boundary=6815dbc897af4706bd5a39f49b157928--6815dbc897af4706bd5a39f49b157928Content-Disposition: form-data; name="op";image_process--6815dbc897af4706bd5a39f49b157928Content-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,}]}}