智能多媒体 API

  • 多文件压缩

    最近更新时间:2018-07-27 17:02:27

    多文件压缩为用户提供了批量文件的压缩存储功能。用户通过指定一系列 URL,即可将若干七牛空间中的资源文件,在七牛服务端压缩后存储。若用户同时指定了saveas,则将生成的压缩文件以用户指定的 key 存储到指定的 bucket 中,若未指定 saveas,则以压缩文件的 hash 值作为 key 并存储到当前 bucket 中。

    1.少量文件压缩(mode=2)

    接口规格

    POST /pfop/ HTTP/1.1
    Host: api.qiniu.com
    Content-Type: application/x-www-form-urlencoded
    Authorization: Qbox <AccessToken>
    
    bucket=<bucket>&key=<key>&fops=<mkzipArgs>
    
    参数名称 必填 说明
    <bucket> 必填 存储空间名。
    <key> 必填 存储空间内指定资源的文件名字。此处的key所指的资源内容对 mkzip 操作本身没有影响,必填是由于 pfop 接口规格要求请求 body 中参数必须包含 bucket 和 key,因此即使未对空间特定资源进行操作,在执行 mkzip 操作时仍然需要指定账号下的特定空间和该空间的已有资源。
    <mkzipArgs> 必填 mkzipArgs 规格说明如下。

    mkzipArgs 规格说明:

    mkzip/<mode>
         /encoding/<UrlsafeBase64EncodedEncoding>
         /url/<Base64EncodedURL1>[/alias/<Base64EncodedAlias1>]
         /url/<Base64EncodedURL2>[/alias/<Base64EncodedAlias2>]
         ... ...
         /url/<Base64EncodedURLN>[/alias/<Base64EncodedAliasN>]
    
    参数名称 必填 说明
    <Mode> 必填 值为 2,用于少量文件压缩,mkzipArgs字符串长度不能超过2048字节。
    /encoding/<UrlsafeBase64EncodedEncoding> 可选 指示压缩包内资源命名的编码,目前支持 gbk 和 utf-8,默认 utf-8。
    /url/<Base64EncodedURLN> 至少一项 需要被压缩资源(这些资源必须处于同一个 bucket 下)的 URL,必须是公网可访问资源,在请求中需要经过URL安全的Base64编码
    /alias/<Base64EncodedAliasN> 可选 资源在压缩文件中的别名,需要经过URL安全的Base64编码,若不指定则为 url 中资源的原文件名。

    注意

    • 该接口仅支持异步的pfop操作。
    • 不支持压缩打包空文件。

    示例

    持久化数据处理的形式:

    1. 获取以下资源:
      • http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg
      • http://78re52.com1.z0.glb.clouddn.com/resource/dive-into-golang.pptx
      • http://78re52.com1.z0.glb.clouddn.com/resource/thinking-in-go.mp4
    2. http://78re52.com1.z0.glb.clouddn.com/resource/gogopher.jpg 重命名为 mkziptest;
    3. 将 mkziptest、dive-into-golang.pptx 和 thinking-in-go.mp4 打包,并另存为成 resource/mkziptest 保存到空间 qiniu-developer 中:
    POST /pfop/ HTTP/1.1
    Host: api.qiniu.com  
    Content-Type: application/x-www-form-urlencoded  
    Authorization: QBox <AccessToken>  
    
    bucket=qiniu-developer
    &key=1.png
    &fops=mkzip%2f2%2furl%2faHR0cDovLzc4cmU1Mi5jb20xLnowLmdsYi5jbG91ZGRuLmNvbS9yZXNvdXJjZS9nb2dvcGhlci5qcGc=%2falias%2fbWt6aXB0ZXN0%2furl%2faHR0cDovLzc4cmU1Mi5jb20xLnowLmdsYi5jbG91ZGRuLmNvbS9yZXNvdXJjZS9kaXZlLWludG8tZ29sYW5nLnBwdHg=%2furl%2faHR0cDovLzc4cmU1Mi5jb20xLnowLmdsYi5jbG91ZGRuLmNvbS9yZXNvdXJjZS90aGlua2luZy1pbi1nby5tcDQ=
    



    其中,请求 body 中的 key = 1.png 仅仅为符合pfop操作的接口规格而存在,并没有实际的意义,但需要是操作空间中存在的资源的 key。

    2.大量文件压缩(mode=4)

    为了将大量文件压缩,可以将待压缩文件URL写入一个索引文件,上传至bucket,再对该索引文件进行的mkzip操作。

    索引文件格式为:

    /url/<Base64EncodedURL1>[/alias/<Base64EncodedAlias1>]
    /url/<Base64EncodedURL2>[/alias/<Base64EncodedAlias2>]
    ... ...
    /url/<Base64EncodedURLN>[/alias/<Base64EncodedAliasN>]
    
    参数说明 必填 说明
    /url/<Base64EncodedURLN> 至少一项 需要被压缩资源(这些资源必须处于同一个 bucket 下)的 URL,必须是公网可访问资源,在请求中需要经过URL安全的Base64编码
    /alias/<Base64EncodedAliasN> 可选 资源在压缩文件中的别名,需要经过URL安全的Base64编码,若不指定则为 url 中资源的原文件名。

    注意

    • 每一行填写一个待压缩文件URL及重命名参数
    • 索引文件必须和目标资源文件在同一个bucket内
    • 资源总数目不超过3000个

    请求接口规格

    POST /pfop/ HTTP/1.1
    Host: api.qiniu.com
    Content-Type: application/x-www-form-urlencoded
    Authorization: Qbox <AccessToken>
    
    bucket=<bucket>&key=<key>&fops=<mkzipArgs>
    
    参数名称 必填 说明
    <bucket> 必填 存储空间名
    <key> 必填 key即为上面的索引文件
    <mkzipArgs> 必填 mkzipArgs 规格说明如下

    其中 mkzipArgs 规格为:

    mkzip/<mode>
         /encoding/<UrlsafeBase64EncodedEncoding>
    
    参数名称 必填 说明
    <Mode> 必填 取值为 4,用于大量文件压缩。
    /encoding/<UrlsafeBase64EncodedEncoding> 可选 指示压缩包内资源命名的编码,目前支持 gbk 和 utf-8,默认 utf-8。

    注意

    • 该接口仅支持异步的pfop操作。
    • 不支持压缩打包空文件。

    示例

    持久化数据处理的形式:

    1. 获取以下资源地址:
      • http://ogtoywd4d.bkt.clouddn.com/resource/gogopher.jpg
      • http://ogtoywd4d.bkt.clouddn.com/resource/dive-into-golang.pptx
      • http://ogtoywd4d.bkt.clouddn.com/resource/thinking-in-go.mp4
    2. http://ogtoywd4d.bkt.clouddn.com/resource/gogopher.jpg 重命名为 mkziptest;
    3. 上传索引文件index
    4. 将 mkziptest、dive-into-golang.pptx 和 thinking-in-go.mp4 压缩打包到原bucket;
    POST /pfop/ HTTP/1.1
    Host: api.qiniu.com  
    Content-Type: application/x-www-form-urlencoded  
    Authorization: QBox <AccessToken>  
    
    bucket=qiniu-developer&key=1.png&fops=mkzip%2f4
    
    以上内容是否对您有帮助?
  • Icon free helper
    Close