压缩/打包下载API。
接口说明
-
请确保在使用该接口前,已充分了解智能媒体管理产品的收费方式和价格。
-
文件数量限制:最多支持打包 8 万个文件。
-
文件大小限制:打包压缩前所有文件大小不超过 200 GB。
-
该功能支持 OSS 上的标准存储类型文件,如需要打包压缩其他类型文件,请先转化文件的存储类型。
-
该接口为异步接口,获取任务开始执行后,任务信息只保存 7 天,超过 7 天则无法再获取。调用 GetTask 或 ListTasks 接口获取返回的
TaskId
,查看任务信息。也可以通过设置 Notification 消息通知参数,通过消息通知获取任务信息。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
imm:CreateFileCompressionTask | create |
|
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
ProjectName | string | 是 | 项目名称,获取方式请参见创建项目。 | test-project |
Sources | array<object> | 否 | 待压缩的文件列表和打包规则描述。 说明
与参数 SourceManifestURI 二选一。Sources 支持最多 100 条打包规则,超长请使用参数 SourceManifestURI。
| |
object | 否 | 待打包的文件的 OSS 地址和对应的打包规则描述。 | ||
URI | string | 否 | 待压缩的目录或文件的 OSS 地址。 OSS 地址规则为 oss://${Bucket}/${Object},其中
| oss://test-bucket/test-object |
Alias | string | 否 | 重定向待压缩文件在压缩包中的文件路径或重命名文件。
说明
请避免在重命名过程中出现重名文件的情况,出现此情况时压缩包内的重名文件可能无法解压(取决于您使用的解压程序)。
| /new-dir/ |
Mode | string | 否 | 指定打包规则的匹配模式,包括
| fullname |
CredentialConfig | CredentialConfig | 否 | 如无特殊需求,请保持留空即可。 链式授权配置,非必填。更多信息,请参见使用链式授权访问其他实体资源。 | |
SourceManifestURI | string | 否 | 文件清单存储的地址。文件清单将 Sources 结构以 JSON 格式存储在 OSS 上,适用于打包文件较多的情况。 说明
与参数 Sources 二选一。其中URI 参数必填,Alias 参数选填。SourceManifestURI 支持最多 80000 条打包规则。该文件内部结构示例:
| oss://test-bucket/test-object.json |
TargetURI | string | 是 | 输出文件的 OSS 地址。压缩文件将以该路径中的文件名称命名,例如 OSS 地址规则为 oss://${Bucket}/${Object},其中 | oss://test-bucket/test-target-object.zip |
CompressedFormat | string | 否 | 文件打包压缩类型,默认值为 zip。 说明
目前仅支持 zip 格式。
| zip |
UserData | string | 否 | 用户自定义信息,在异步消息通知中会为您返回,方便您系统内对消息通知进行关联处理。最大长度为 2048 字节。 | test-data |
Notification | Notification | 否 | 消息通知配置,详细内容请单击 Notification 查看,异步通知消息格式请参见异步通知消息格式。 |
典型场景中打包规则举例
对于如下示例的文件结构,对一些经典的场景示例说明:
(bucket)
├── test-dir1
│ ├── file1.txt
│ ├── file2.doc
│ ├── file3.png
│ └── my-file.json
└── test-dir2
├── AAA
│ └── file.txt
├── AAA
├── file6.doc
├── file7.doc
└── file8.doc
对指定文件夹进行打包
打包test-dir1
下的所有文件打包到指定目录test-dir
中,打包规则:
[
{
"URI" : "oss://bucket/test-dir1/",
"Alias" : "/test-dir/"
}
]
生成的压缩包结构为:
.
└── test-dir
├── file1.txt
├── file2.doc
├── file3.png
└── my-file.json
对指定前缀进行打包
打包前缀为test-dir1/file
下的所有文件打包到指定目录test-dir
中,打包规则:
[
{
"URI" : "oss://bucket/test-dir1/file",
"Alias" : "/test-dir/"
}
]
生成的压缩包结构为:
.
└── test-dir
├── file1.txt
├── file2.doc
└── file3.png
注意,如果使用前缀模式进行打包,会将同名的文件夹/文件同时打包进压缩包,例如:
[
{
"URI" : "oss://bucket/test-dir2/AAA",
"Alias" : "/AAA/"
}
]
生成的压缩包结构为:
.
└── AAA
├── AAA
└── file.txt
对指定的文件进行打包
如果不想使用前缀模式,可以通过设置mode
参数准确的打包指定的文件:
[
{
"URI" : "oss://bucket/test-dir2/AAA",
"Alias" : "AAA",
"mode" : "fullname",
},
{
"URI" : "oss://bucket/test-dir1/",
"Alias" : "/test-dir1/",
"mode" : "fullname",
}
]
生成的压缩包结构为:
.
├── AAA
└── test-dir1
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "EC564A9A-BA5C-4499-A087-D9B9E76E*****",
"EventId": "0ED-1Bz8z71k5TtsUejT4UJ16Es*****",
"TaskId": "FileCompression-3579a380-6f7a-4a9d-b9d2-65996*****"
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2023-11-20 | API 内部配置变更,不影响调用 | 查看变更详情 |
2023-05-12 | OpenAPI 入参发生变更 | 查看变更详情 |
2023-04-03 | OpenAPI 入参发生变更 | 查看变更详情 |
2023-03-09 | OpenAPI 入参发生变更 | 查看变更详情 |