简介
本文档提供关于数据万象文件压缩的 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.NameTag stringOperation *FileProcessJobOperationQueueId stringCallBackFormat stringCallBackType stringCallBack stringCallBackMqConfig *NotifyConfigCallBackMqConfig}type FileProcessJobOperation struct {FileCompressConfig *FileCompressConfigFileCompressResult *FileCompressResultOutput *FileProcessOutputUserData string}type FileCompressConfig struct {Flatten stringFormat stringUrlList stringPrefix stringKey []stringType stringCompressKey string}type FileCompressResult struct {Region stringBucket stringObject string}type FileProcessOutput struct {Region stringBucket stringObject string}type NotifyConfigCallBackMqConfig struct {MqMode stringMqRegion stringMqName 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 | String | 否 | |
CallBackFormat | 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。 | String | 否 |
CallBackType | 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。 | String | 否 |
CallBack | 任务回调的地址,优先级高于队列的回调地址。 | String | 否 |
CallBackMqConfig | Container | 否 |
说明:
在 Operation.FileCompressConfig 中,UrlList、Prefix、Key 三者仅能选择一个,不能都为空,也不会同时生效。如果填了多个,会按优先级 UrlList > Prefix > Key 取最高优先级执行。
返回结果说明
type FileProcessJobResult struct {JobsDetail FileProcessJobResult}type FileProcessJobResult struct {Code stringMessage stringJobId stringTag stringState stringCreationTime stringStartTime stringEndTime stringQueueId stringInput *FileProcessInputOperation *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 |