图片持久化处理

最近更新时间:2024-01-16 17:58:32

我的收藏

简介

本文档提供关于图片持久化处理相关的 API 概览以及 SDK 示例代码。
API
操作描述
对象存储(Cloud Object Storage,COS)提供的上传时处理功能可以帮助使用者在上传时实现图片处理。此外能够对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。支持处理32MB以内的图片。

上传时处理

功能说明

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

方法原型

ci_put_object(self, Bucket, Body, Key, EnableMD5=False, **kwargs)

请求示例

with open('local.jpg', 'rb') as fp:
response, data = client.ci_put_object(
Bucket='examplebucket-1250000000',
Body=fp,
Key=ci_file_name,
# pic operation json struct
PicOperations='{"is_pic_info":1,"rules":[{"fileid":"format.png","rule":"imageView2/format/png"}]}')

全部参数请求示例

response = client.ci_put_object(
Bucket='examplebucket-1250000000',
Body=b'bytes'|file,
Key='exampleobject',
EnableMD5=False|True,
ACL='private'|'public-read', # 请慎用此参数,否则会达到1000条 ACL 上限
GrantFullControl='string',
GrantRead='string',
StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',
Expires='string',
CacheControl='string',
ContentType='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentLength='123',
ContentMD5='string',
Metadata={
'x-cos-meta-key1': 'value1',
'x-cos-meta-key2': 'value2'
},
TrafficLimit='1048576'
PicOperations='{"is_pic_info":1,"rules":[{"fileid":"format.png","rule":"imageView2/format/png"}]}'
)

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,由 BucketName-APPID 构成
String
Body
上传对象的内容,可以为文件流或字节流
file/bytes
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
PicOperations
万象图片处理参数,请参见 图片持久化处理
String
EnableMD5
是否需要 SDK 计算 Content-MD5,默认关闭,打开后将增加上传耗时
Bool
ACL
设置对象的 ACL,例如 'private','public-read'
String
GrantFullControl
赋予被授权者所有的权限,格式为 id="OwnerUin"
String
GrantRead
赋予被授权者读的权限,格式为 id="OwnerUin"
String
StorageClass
设置对象的存储类型,STANDARD,STANDARD_IA,ARCHIVE。默认值为 STANDARD。更多存储类型,请参见 存储类型概述
String
Expires
设置 Expires
String
CacheControl
缓存策略,设置 Cache-Control
String
ContentType
内容类型,设置 Content-Type
String
ContentDisposition
对象名称,设置 Content-Disposition
String
ContentEncoding
编码格式,设置 Content-Encoding
String
ContentLanguage
语言类型,设置 Content-Language
String
ContentLength
设置传输长度
String
ContentMD5
设置上传对象的 MD5 值用于校验
String
Metadata
用户自定义的对象元数据, 必须以 x-cos-meta 开头,否则会被忽略
Dict
TrafficLimit
单链接限速的值,单位为 bit/s,限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s
String
PicOperations 为 json 格式的字符串,具体参数如下:
参数名称
描述
类型
是否必选
is_pic_info
是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
Int
rules
处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理
Array
rules(json 数组)中每一项具体参数如下:
参数名称
描述
类型
是否必选
bucket
存储结果的目标存储桶名称,格式为 BucketName-APPID,如果不指定的话默认保存到当前存储桶
String
fileid
处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
String
rule
处理参数,参见数据万象图片处理 API。若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为 test,则 rule 字段为 style/test
String

返回结果说明

获取原图片和处理信息,类型为 dict:
{
'OriginalInfo': {
'Key': 'local.jpg',
'Location': 'examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/local.jpg',
'ETag': '"aff1b996bcc63a0f0259df0de2fa989f38c5ce7e"',
'ImageInfo': {
'Format': 'JPEG',
'Width': '300',
'Height': '168',
'Quality': '74',
'Ave': '0x1a3451',
'Orientation': '0'
'FrameCount': '1'
}
},
'ProcessResults': {
'Object': {
'Key': 'format.png',
'Location': 'examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/format.png',
'Format': 'png',
'Width': '300',
'Height': '168',
'Size': '77063',
'Quality': '74',
'ETag': '"a07dc5bcfa238e7d23d2d5884da4ac328aaaa9c6"'
'FrameCount': '1'
}
}
}
响应包体具体数据内容如下:
参数名称
类型
描述
UploadResult
Container
原图信息
UploadResult 节点内容:
参数名称
类型
描述
OriginalInfo
Container
原图信息
ProcessResults
Container
图片处理结果
OriginalInfo 节点内容:
节点名称
类型
描述
Key
String
原图文件名
Location
String
图片路径
ImageInfo
Container
原图图片信息
ETag
String
原图 ETag 信息(若处理结果图覆盖原图则为结果图 ETag 信息)
ImageInfo 节点内容:
节点名称
类型
描述
Format
String
格式
Width
Int
图片宽度
Height
Int
图片高度
Quality
Int
图片质量
Ave
String
图片主色调
Orientation
Int
图片旋转角度
FrameCount
Int
图片帧数,静态图默认为1
ProcessResults 节点内容:
节点名称
类型
描述
Object
Container
每一个图片处理结果
Object 节点内容:
节点名称
类型
描述
Key
String
文件名
Location
String
图片路径
Format
String
图片格式
Width
Int
图片宽度
Height
Int
图片高度
Size
Int
图片大小
Quality
Int
图片质量
ETag
String
处理结果图 ETag 信息
FrameCount
Int
图片帧数,静态图默认为1

云上数据处理

功能说明

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

方法原型

ci_image_process(self, Bucket, Key, **kwargs)

请求示例

response, data = client.ci_image_process(
Bucket='examplebucket-1250000000',
Key=ci_file_name,
# pic operation json struct
PicOperations='{"is_pic_info":1,"rules":[{"fileid":"format.png","rule":"imageView2/format/png"}]}')

全部参数请求示例

response, data = client.ci_image_process(
Bucket='examplebucket-1250000000',
Key=ci_file_name,
# pic operation json struct
PicOperations='{"is_pic_info":1,"rules":[{"fileid":"format.png","rule":"imageView2/format/png"}]}')

参数说明

参数名称
参数描述
类型
是否必填
Bucket
存储桶名称,由 BucketName-APPID 构成
String
Key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
String
PicOperations
万象图片处理参数,请参见 图片持久化处理
String
PicOperations 为 json 格式的字符串,具体参数如下:
参数名称
描述
类型
是否必选
is_pic_info
是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
Int
rules
处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理
Array
rules(json 数组)中每一项具体参数如下:
参数名称
描述
类型
是否必选
bucket
存储结果的目标存储桶名称,格式为 BucketName-APPID,如果不指定的话默认保存到当前存储桶
String
fileid
处理结果的文件路径名称,如以/开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
String
rule
处理参数,可参见图片处理 API。若按指定样式处理,则以 style/ 开头,后加样式名,如样式名为 test,则 rule 字段为 style/test
String

返回结果说明

获取对象的元信息,类型为 dict:
{
'OriginalInfo': {
'Key': 'local.jpg',
'Location': 'examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/local.jpg',
'ETag': '"aff1b996bcc63a0f0259df0de2fa989f38c5ce7e"',
'ImageInfo': {
'Format': 'JPEG',
'Width': '300',
'Height': '168',
'Quality': '74',
'Ave': '0x1a3451',
'Orientation': '0'
'FrameCount': '1'
}
},
'ProcessResults': {
'Object': {
'Key': 'format.png',
'Location': 'examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/format.png',
'Format': 'png',
'Width': '300',
'Height': '168',
'Size': '77063',
'Quality': '74',
'ETag': '"a07dc5bcfa238e7d23d2d5884da4ac328aaaa9c6"'
'FrameCount': '1'
}
}
}
响应包体具体数据内容如下:
参数名称
类型
描述
UploadResult
Container
原图信息
UploadResult 节点内容:
参数名称
类型
描述
OriginalInfo
Container
原图信息
ProcessResults
Container
图片处理结果
OriginalInfo 节点内容:
节点名称
类型
描述
Key
String
原图文件名
Location
String
图片路径
ImageInfo
Container
原图图片信息
ETag
String
原图 ETag 信息(若处理结果图覆盖原图则为结果图 ETag 信息)
ImageInfo 节点内容:
节点名称
类型
描述
Format
String
格式
Width
Int
图片宽度
Height
Int
图片高度
Quality
Int
图片质量
Ave
String
图片主色调
Orientation
Int
图片旋转角度
FrameCount
Int
图片帧数,静态图默认为1
ProcessResults 节点内容:
节点名称
类型
描述
Object
Container
每一个图片处理结果
Object 节点内容:
节点名称
类型
描述
Key
String
文件名
Location
String
图片路径
Format
String
图片格式
Width
Int
图片宽度
Height
Int
图片高度
Size
Int
图片大小
Quality
Int
图片质量
ETag
String
处理结果图 ETag 信息
FrameCount
Int
图片帧数,静态图默认为1