管道

管道是一种可以实现多种处理任务顺序执行的机制。您可以通过管道在一次访问中按照顺序完成对文件的不同处理。

访问规则

URL通过处理参数action1action2实现数据处理。如果有多任务,执行顺序按管道指定顺序执行,管道的分隔符是竖线(|)。

以下规则表示先对文件做action1处理,然后再做action2处理,最后输出结果。

  • 同步处理管道访问规则:<文件URL>?x-oss-process=<action1>|<action2>

  • 异步处理仅支持POST访问,管道访问规则:

    POST <文件URL>?x-oss-async-process HTTP/1.1
    Host: <HOST HEADER>
    Date: <DATE HEADER>
    Authorization: <AUTH HEADER>
    
    x-oss-async-process=<action1>|<action2>

使用限制

  • 同步处理:同步处理能力中的图片处理支持使用管道,文档处理中的文档在线预览和文档在线编辑不支持使用管道。

  • 异步处理:异步处理能力仅支持在其尾部串联sys/saveas以及/notify示例如下:

    POST /exmaple.docx?x-oss-async-process HTTP/1.1
    Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
    Date: Fri, 28 Oct 2022 06:40:10 GMT
    Authorization: OSS qn6q**************:77Dv****************
     
     // 将文件example.docx转换为PNG格式的图片文件。
    x-oss-async-process=doc/convert,target_png,source_docx|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw/notify,topic_ZG9jX2ltYWdlcw

使用示例

图片处理

示例一

先对图片做按高度300缩略,然后再加上文字水印,水印内容是:“Hello 图片服务!” 。

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg@300h|watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ

管道1

示例二

先对图片做文字水印,水印内容是:“Hello, 图片服务!”,水印位置在右下角,然后再对图片做图片水印,水印文件是panda.png,水印位置在中间。

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg@watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&p=9|watermark=1&object=cGFuZGEucG5n&t=90&p=5

管道2

文档处理

示例

  • 处理方式

    1. 将格式为DOCX的文件example.docx转换为PNG格式的图片文件。

    2. 将转换完成的图片文件存储到oss://test-bucket/doc_images/路径中,并将通知发送到doc_images的MNS主题。

  • 处理URL

    https://doc-demo.oss-cn-hangzhou.aliyuncs.com/example.docx?x-oss-async-process=doc/convert,target_png,source_docx|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw/notify,topic_ZG9jX2ltYWdlcw

    • action1doc/convert,target_png,source_docx,表示将格式为DOCX的文件转换为PNG格式的图片文件。

    • action2sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw/notify,topic_ZG9jX2ltYWdlcw,表示将转换完成的图片文件存储到oss://test-bucket/doc_images/路径中,并在转换完成后将通知发送到doc_images的MNS主题。