You need to enable JavaScript to run this app.
导航
创建多文件压缩异步任务
最近更新时间:2024.11.27 15:20:57首次发布时间:2023.07.14 14:45:08

本接口支持将指定的若干文件进行压缩并打包为 ZIP 包,并将结果上传至指定服务。同时,在打包的过程中,支持对各文件重命名,以及自定义压缩规则与压缩包名称。

使用方式

本接口支持以下两种待压缩文件的提交方式:

  • 方式 1:FlieList 方式:需配置待压缩文件的公网访问 URL 与 Alias,Folder 配置,文件不得超过 3000 个。

  • 方式 2:IndexFile 方式:在 .txt 文件(索引文件)内填写待压缩文件相关配置,每行需填写 StoreUri/URL,Alias,Folder相关配置,并将该索引文件上传至指定的 veImageX 存储服务,并获取索引文件在该服务的 StoreUri。

    索引文件内支持填写的文件地址有以下两种类型,但单个索引文件内的文件地址类型需要保持一致,不支持混用。

    1. 填写待压缩文件的公网访问 URL,veImageX 将按序依次下载公网文件。您可下载 Compress_StoreUri.txt 参考示例,完成 URL 类型索引文件的填写。

      Compress_URL.txt
      110.00Bytes
    2. 推荐】填写待压缩文件的 StoreUri,您需要提前将该文件上传至指定的 veImageX 存储服务。您可下载 Compress_StoreUri.txt 参考示例,完成 StoreUri 类型索引文件的填写。

      Compress_StoreUri.txt
      100.00Bytes

注意

如果待压缩文件的地址为公网 URL 类型,那么 veImageX 将在解析到文件地址后,依次去公网下载文件。如果提交的这批文件的原始总大小超过了 45000MB,那么当下载量达到 45000MB 时,接口会提示该压缩任务失败,但此时已产生对应 45000MB 文件的公网流出费用。

由于 veImageX 对于公网下载文件的缓存时间为 30 个自然日,那么您可在任务失败后的 30 天内重新创建已缓存文件的压缩任务,期间不再重复收费。

注意事项

  • 计费说明:多文件压缩功能属于附加组件下其他增值模块,属于后付费计费,使用后会产生增值服务费用。
  • 前提条件:请在 veImageX 控制台提前开通多文件压缩组件。
  • 使用限制:使用组件前,请先确认多文件压缩使用限制
  • 请求频率:单用户请求频率限制为 10 次/秒
  • 服务地址:veImageX 在全球多个区域部署,每个区域有自己对应的 OpenAPI 域名,不支持跨区域调用。详情参见服务地址

请求说明

  • 请求方式:POST
  • 请求地址:https://imagex.volcengineapi.com/?Action=CreateImageCompressTask&Version=2018-08-01

说明

veImageX 在全球多个区域部署,每个区域有自己对应的 OpenAPI 域名,不支持跨区域调用。具体详情请查看服务地址

请求参数

以下请求参数列表仅列出了该接口的部分公共参数,完整公共参数列表见公共参数

Query

参数类型是否必选示例值描述
ActionStringCreateImageCompressTask接口名称。当前 API 的名称为 CreateImageCompressTask
VersionString2018-08-01接口版本。当前 API 的版本为 2018-08-01

ServiceId

String

7g**2i

压缩文件存储的目标服务 ID。

  • 您可以在 veImageX 控制台 服务管理页面,在创建好的图片服务中获取服务 ID。
  • 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考获取所有服务信息

Body

参数类型是否必选示例值描述

FileList

Array of FileList

-

IndexFile为二选一,必填。
压缩文件列表配置,最多可支持 3000 个文件,压缩前文件的总大小不得超过 45000 MB。若超出限制,则取消压缩打包操作,致使打包任务失败。

IndexFile

String

tos-i-hr***pr/testcompress.txt

FileList为二选一,必填。
索引文件的 StoreUri,为 .txt 文件,该索引文件需上传至指定服务对应存储中。
该索引文件内需填写待压缩文件的地址,每行填写一个,最多可填写 3000 行。压缩前文件的总大小不超过 45000 MB。若超出限制,则取消压缩打包操作,致使打包任务失败。

OutputStringtestcompress压缩后文件压缩包的指定名称,默认为随机 Key。

ZipMode

Integer

0

文件的处理方式,取值如下所示:

  • 0:使用 ZIP DEFLATE 压缩方法,将文件进行压缩并打包为 ZIP 包。该方式适用于需要长期存储大量未经压缩的文件的场景,以节省存储空间。但需注意的是,若文件本身已经过压缩处理,将会因为文件的可压缩空间有限,导致该方式的压缩效果不明显。
  • 1:仅将文件打包为 ZIP 包,但不执行压缩操作。该方式适用于快速整理文件而无需节省存储空间的场景。例如已经过压缩的文件的打包存储,以便于传输或归档。
CallbackStringhttp://test.comPOST 类型的回调 URL,用于接收相关回调 JSON 类型数据。回调参数请参考回调内容

FileList

参数类型是否必选示例值描述
UrlStringhttp://test.imagex.com/tos-cn-i-rw****qr/86****4c.png~tplv-rw***qr-6.image公网可访问的待压缩文件 URL

Alias

String

compress1

  • 指定时,为 URL 文件所在压缩包中的别名。输入规则如下所示:
    • 支持汉字、字母、数字及符号-_.
    • 不能以-_.开头;
    • 长度不得超过 100 个字符。
  • 不指定时,若能提取原文件名称时,则以 URL 原文件名称;否则,使用随机名称。

Folder

String

a/b

指定源文件在压缩包中的文件夹,不传时则将该资源存储至一级目录下。输入规则如下所示:

  • 支持汉字、字母、数字及符号-_.
  • 不能以-_.开头;
  • 不能以/结尾。

注意

  • 建议命名长度不超过 256 个字节。
  • 建议您在命名中仅使用 -_. 这三种符号。如果您使用了其他符号,可能因操作系统不支持导致处理异常。

返回参数

参数类型示例值描述
TaskIdString82370***12102压缩任务 ID

示例

请求示例

POST https://imagex.volcengineapi.com/?Action=CreateImageCompressTask&Version=2018-08-01&ServiceId=7g%2A%2A2i
{
   "FileList":[
      {
         "Url":"http://test.imagex.com/tos-cn-i-rw****qr/86****4c.png~tplv-rw***qr-6.image",
         "Alias":"compress1",
         "Folder":""
      },
      {
         "Url":"http://test.imagex.com/tos-cn-i-rw****qr/90****5j.png~tplv-rw***qr-1.image",
         "Alias":"compress2",
         "Folder":"a/b"
      }
   ],
   "Output":"compress_test",
   "ZipMode":0,
   "Callback":"http://test.com"
}

返回示例

{
  "ResponseMetadata": {
    "RequestId": "202306041104200100100232280022D31",
    "Action": "CreateImageCompressTask",
    "Version": "2018-08-01",
    "Service": "imagex",
    "Region": "cn-north-1"
  },
  "Result": {
      "TaskId": "82370***12102"
  }
}

错误码

访问公共错误码和 veImageX 错误码获取详细信息。

服务端 SDK

为了方便您快速开发,veImageX 提供了配套的服务端 SDK,同时支持多种编程语言。建议您使用服务端 SDK 来调用 API,参考文档如下所示:

回调内容

参数名称参数类型参数描述
TaskIdString异步压缩任务 ID

Status

String

任务状态,取值如下所示:

  • Failed:压缩失败
  • Success:压缩成功
OutputUriString压缩包 StoreUri。
ErrString错误信息。仅当StatusFailed时,该值不为空。
CodeInteger错误码。仅当StatusFailed时,该值不为 0。
StartTimeint 64创建开始时间,unix 时间,单位为纳秒。
EndTimeint 64创建结束时间,unix 时间,单位为纳秒。
TimeCostint 64打包耗时时间,unix 时间,单位为毫秒。
ErrUrlsArray of String打包失败的 URL/Uri 列表。

回调示例如下所示。

{
	"TaskId": "82370***12102",
	"Status": "Failed",
	"OutputUri": "tos-cn-i-hr***pr/testcompress.txt",
	"Err": "压缩失败",
	"Code": 604026,
	"StartTime": 1641027296000000000,
	"EndTime": 1641037921000000000,
	"TimeCost": 1200000,
	"ErrUrls": {
		"tos-cn-i-hr***pr/1.png",
		"tos-cn-i-hr***pr/test.jpg"
	}
}