tencent cloud

文档反馈

图片持久化处理

最后更新时间:2024-01-22 11:43:35

    简介

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

    上传时处理

    功能说明

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

    方法原型

    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'
    }
    },
    '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"'
    }
    }
    }
    响应包体具体数据内容如下:
    参数名称
    类型
    描述
    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
    图片旋转角度
    ProcessResults 节点内容:
    节点名称
    类型
    描述
    Object
    Container
    每一个图片处理结果
    Object 节点内容:
    节点名称
    类型
    描述
    Key
    String
    文件名
    Location
    String
    图片路径
    Format
    String
    图片格式
    Width
    Int
    图片宽度
    Height
    Int
    图片高度
    Size
    Int
    图片大小
    Quality
    Int
    图片质量
    ETag
    String
    处理结果图 ETag 信息

    云上数据处理

    功能说明

    图片持久化处理 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'
    }
    },
    '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"'
    }
    }
    }
    响应包体具体数据内容如下:
    参数名称
    类型
    描述
    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
    图片旋转角度
    ProcessResults 节点内容:
    节点名称
    类型
    描述
    Object
    Container
    每一个图片处理结果
    Object 节点内容:
    节点名称
    类型
    描述
    Key
    String
    文件名
    Location
    String
    图片路径
    Format
    String
    图片格式
    Width
    Int
    图片宽度
    Height
    Int
    图片高度
    Size
    Int
    图片大小
    Quality
    Int
    图片质量
    ETag
    String
    处理结果图 ETag 信息
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持