图片处理默认是不会保存处理后的图片的,您可以通过图片转存功能,将您已经处理好的图片保存到指定的存储空间(Bucket)内,赋以指定Key。保存成功后,您可以在指定的Bucket内访问处理后的图片。

请求语法

POST /ObjectName?x-oss-process HTTP/1.1
Content-Length:ContentLength
Content-Type: ContentType
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-process=image/resize,w_100|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA

使用Post接口来调用图片处理服务,参数在body中传递,增加saveas参数支持另存为OSS文件。其中x-oss-process后面跟的参数和使用queryString来调用图片处理功能的参数一致。

saveas的参数列表

参数 含义
o 目标Object名称,参数需经过urlsafe的base64编码。
b 目标Bucket名称,参数需经过urlsafe的base64编码。如果不指定目标Bucket,则默认保存到当前Bucket。

细节分析

  • saveas操作需要调用方有目标Bucket和Object的写权限,否则返回403。
  • saveas参数中的Bucket和Object名称需满足OSS的Bucket和Object名称的规范,否则返回400。
  • saveas指定的Bucket需和当前Bucket在同一个region,否则返回400。
  • saveas操作只能在Post操作中使用,不能在Get操作中指定,否则返回400。

示例

  • 请求示例
    POST /ObjectName?x-oss-process HTTP/1.1
    Host: oss-example.oss.aliyuncs.com
    Content-Length: 247
    Date: Fri, 04 May 2012 03:21:12 GMT
    Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
    x-oss-process=image/resize,w_100|sys/saveas,o_dGVzdC5qcGc,b_dGVzdA

    示例中的参数含义为将目标图片缩放之后保存到名称为test的Bucket,Object名称为test.jpg

  • 返回示例
    HTTP/1.1 200 OK
    x-oss-request-id: 534B371674E88A4D8906008B
    Date: Fri, 04 May 2012 03:21:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS

SDK

有关图片处理持久化SDK的具体实现,请参考以下文档: