有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

本文档提供关于数据万象文件压缩的 API 概览以及 SDK 示例代码。
API
操作描述
以提交任务的方式进行多文件打包压缩任务
主动查询指定的多文件打包压缩任务结果

提交多文件打包压缩任务

功能说明

多文件打包压缩功能可以将您的多个文件,打包为 zip 等压缩包格式,以提交任务的方式进行多文件打包压缩,异步返回打包后的文件。

方法原型

func (s *CIService) CreateFileProcessJob(ctx context.Context, opt *FileProcessJobOptions) (*FileProcessJobResult, *Response, error)

请求示例

createJobOpt := &cos.FileProcessJobOptions{
Tag: "FileCompress",
Operation: &cos.FileProcessJobOperation{
FileCompressConfig: &cos.FileCompressConfig{
Format: "zip",
Flatten: "0",
Key: []string{"1.mp3", "2.jpg"},
},
Output: &cos.FileProcessOutput{
Region: "ap-shanghai",
Bucket: "test-1250000000",
Object: "vvvvxxxzz.zip",
},
},
}
res, _, err := c.CI.CreateFileProcessJob(context.Background(), createJobOpt)

参数说明

type FileProcessJobOptions struct {
XMLName xml.Name
Tag string
Operation *FileProcessJobOperation
QueueId string
CallBackFormat string
CallBackType string
CallBack string
CallBackMqConfig *NotifyConfigCallBackMqConfig
}

type FileProcessJobOperation struct {
FileCompressConfig *FileCompressConfig
FileCompressResult *FileCompressResult
Output *FileProcessOutput
UserData string
}

type FileCompressConfig struct {
Flatten string
Format string
UrlList string
Prefix string
Key []string
    Type        string  
    CompressKey string

}

type FileCompressResult struct {
Region string
Bucket string
Object string
}

type FileProcessOutput struct {
Region string
Bucket string
Object string
}

type NotifyConfigCallBackMqConfig struct {
MqMode string
MqRegion string
MqName string
}
参数名称
描述
类型
是否必选
Tag
创建任务的 Tag,目前仅支持:FileCompress
String
Operation
操作规则
Container
Operation.FileCompressConfig
指定文件打包压缩的处理规则。
Container
Operation.FileCompressConfig.Flatten
文件打包时,是否需要去除源文件已有的目录结构,有效值:
0:不需要去除目录结构,打包后压缩包中的文件会保留原有的目录结构;
1:需要,打包后压缩包内的文件会去除原有的目录结构,所有文件都在同一层级。
例如:源文件 URL 为 https://domain/source/test.mp4, 则源文件路径为 source/test.mp4,如果为 1,则 ZIP 包中该文件路径为 test.mp4;如果为0, ZIP 包中该文件路径为 source/test.mp4。
String
Operation.FileCompressConfig.Format
打包压缩的类型,有效值:zip、tar、tar.gz。
String
Operation.FileCompressConfig.UrlList
支持将需要打包的文件整理成索引文件,后台将根据索引文件内提供的文件 url,打包为一个压缩包文件。
索引文件需要保存在当前存储桶中,本字段需要提供索引文件的对象地址,例如:/test/index.csv。
索引文件格式:仅支持 CSV 文件,一行一条 URL(仅支持本存储桶文件),如有多列字段,默认取第一列作为URL。最多不超过10000个文件,总大小不超过50G, 否则会导致任务失败。
String
Operation.FileCompressConfig.Prefix
支持对存储桶中的某个前缀进行打包,如果需要对某个目录进行打包,需要加/,例如test目录打包,则值为:test/。最多不超过10000个文件,总大小不超过50G,否则会导致任务失败。
String
Operation.FileCompressConfig.Key
支持对存储桶中的多个文件进行打包,个数不能超过 1000, 总大小不超过50G,否则会导致任务失败。
String 数组
Operation.FileCompressConfig.Type
压缩类型,仅在Format为tar.gz或zip时有效。
faster:压缩速度较快
better:压缩质量较高,体积较小
default:适中的压缩方式
默认值为default
String
Operation.FileCompressConfig.CompressKey
压缩包密钥,传入时需先经过 base64 编码, 编码后长度不能超过128。当 Format 为 zip 时生效
String
Operation.FileCompressResult
多文件打包压缩的结果,提交任务时不需要填写。
Container
Operation.Output
指定文件处理后的文件保存的地址信息。
Container
Operation.Output.Region
存储桶的地域。
String
Operation.Output.Bucket
保存压缩后文件的存储桶。
String
Operation.Output.Object
压缩后文件的文件名。
String
Operation.UserData
透传用户信息, 可打印的 ASCII 码, 长度不超过1024
String
QueueId
任务所在的 队列 ID
String
CallBackFormat
任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。
String
CallBackType
任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。
String
CallBack
任务回调的地址,优先级高于队列的回调地址。
String
CallBackMqConfig
任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig
Container



说明:
在 Operation.FileCompressConfig 中,UrlList、Prefix、Key 三者仅能选择一个,不能都为空,也不会同时生效。如果填了多个,会按优先级 UrlList > Prefix > Key 取最高优先级执行。

返回结果说明

type FileProcessJobResult struct {
JobsDetail FileProcessJobResult
}
type FileProcessJobResult struct {
Code string
Message string
JobId string
Tag string
State string
CreationTime string
StartTime string
EndTime string
QueueId string
Input *FileProcessInput
Operation *FileProcessJobOperation
}
参数名称
描述
类型
JobsDetail
任务的详细信息
Container
Code
错误码,只有 State 为 Failed 时有意义
String
Message
错误描述,只有 State 为 Failed 时有意义
String
JobId
新创建任务的 ID
String
Tag
新创建任务的 Tag:FileCompress
String
State
任务的状态,为 Submitted、Running、Success、Failed、Pause、Cancel 其中一个
String
CreationTime
任务的创建时间
String
StartTime
任务的开始时间
String
EndTime
任务的结束时间
String
QueueId
任务所属的队列 ID
String
Input
该任务的输入文件路径,详情请参见 FileProcessJobOptions.Input
Container
Operation
该任务的规则,详情请参见 FileProcessJobOptions.Operation
Container

查询多文件打包压缩结果

功能说明

查询一个文件处理任务,根据任务 ID 查询任务详情。

方法原型

func (s *CIService) DescribeFileProcessJob(ctx context.Context, jobid string) (*FileProcessJobResult, *Response, error)

请求示例

jobid := "<jobid>"
res, _, err := c.CI.DescribeFileProcessJob(context.Background(), jobid)

参数说明

参数名称
描述
类型
是否必选
jobid
文件处理任务 ID
String

返回结果说明

type FileProcessJobResult struct {
JobsDetail *FileProcessJobsDetail
}


type FileProcessJobsDetail struct {
    Code         string                   `xml:",omitempty"`
    Message      string                   `xml:",omitempty"`
    JobId        string                   `xml:",omitempty"`
    Tag          string                   `xml:",omitempty"`
    State        string                   `xml:",omitempty"`
    CreationTime string                   `xml:",omitempty"`
    StartTime    string                   `xml:",omitempty"`
    EndTime      string                   `xml:",omitempty"`
    QueueId      string                   `xml:",omitempty"`
    Input        *FileProcessInput        `xml:",omitempty"`
    Operation    *FileProcessJobOperation `xml:",omitempty"`
}
参数名称
描述
类型
JobsDetail
任务的详细信息
Container
Code
错误码,只有 State 为 Failed 时有意义
String
Message
错误描述,只有 State 为 Failed 时有意义
String
JobId
新创建任务的 ID
String
Tag
新创建任务的 Tag:FileCompress
String
State
任务的状态,为 Submitted、Running、Success、Failed、Pause、Cancel 其中一个
String
CreationTime
任务的创建时间
String
StartTime
任务的开始时间
String
EndTime
任务的结束时间
String
QueueId
任务所属的队列 ID
String
Input
该任务的输入文件路径,详情请参见 FileProcessJobOptions.Input
Container
Operation
该任务的规则,详情请参见 FileProcessJobOptions.Operation
Container