简介
本文档提供关于数据万象文件处理压缩任务的相关 API 概览以及 SDK 示例代码。
API | 操作描述 |
创建一个多文件打包压缩任务。 | |
查询指定的多文件打包压缩任务结果。 |
提交多文件打包压缩任务
功能说明
多文件打包压缩功能可以将您的多个文件,打包为 zip 等压缩包格式,以提交任务的方式进行多文件打包压缩,异步返回打包后的文件。
示例代码
using COSXML;using COSXML.Auth;using COSXML.Model.CI;namespace COSXMLDemo{public class CreateFileZipProcessJobModel{public CosXml cosXml;// 初始化 COS 服务实例private void InitCosXml(){string region = Environment.GetEnvironmentVariable("COS_REGION");CosXmlConfig config = new CosXmlConfig.Builder().SetRegion(region) // 设置默认的地域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224.Build();string secretId = Environment.GetEnvironmentVariable("SECRET_ID"); // 云 API 密钥 SecretId, 获取 API 密钥请参照 https://console.cloud.tencent.com/cam/capistring secretKey = Environment.GetEnvironmentVariable("SECRET_KEY"); // 云 API 密钥 SecretKey, 获取 API 密钥请参照 https://console.cloud.tencent.com/cam/capilong durationSecond = 600; //每次请求签名有效时长,单位为秒QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond);this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);}CreateFileZipProcessJobModel(){InitCosXml();}public void CreateFileZipProcessJob(){try{string bucket = "bucketname-APPID";string textKey = "";CreateFileZipProcessJobsRequest request = new CreateFileZipProcessJobsRequest(bucket);// 表示任务的类型,多文件打包压缩默认为:FileCompress。;request.SetTag("FileCompress");// 文件打包时,是否需要去除源文件已有的目录结构,有效值:0:不需要去除目录结构,打包后压缩包中的文件会保留原有的目录结构;1:需要,打包后压缩包内的文件会去除原有的目录结构,所有文件都在同一层级。例如:源文件 URL 为 https://domain/source/test.mp4,则源文件路径为 source/test.mp4,如果为 1,则 ZIP 包中该文件路径为 test.mp4;如果为0, ZIP 包中该文件路径为 source/test.mp4。;request.SetFlatten("0");// 打包压缩的类型,有效值:zip、tar、tar.gz。;request.SetFormat("zip");// 压缩类型,仅在 Format 为 tar.gz 或 zip 时有效。faster:压缩速度较快 better:压缩质量较高,体积较小default:适中的压缩方式默认值为 default;request.SetType("better");// 压缩包密钥,传入时需先经过 base64 编码,编码后长度不能超过128。当 Format 为 zip 时生效。;request.SetCompressKey("");// 支持将需要打包的文件整理成索引文件,后台将根据索引文件内提供的文件 url,打包为一个压缩包文件。索引文件需要保存在当前存储桶中,本字段需要提供索引文件的对象地址,不需要带域名,填写示例:/test/index.csv索引文件格式:仅支持 CSV 文件,一行一条 URL(仅支持本存储桶文件),如有多列字段,默认取第一列作为 URL。;request.SetUrlList("");// 支持对存储桶中的某个前缀进行打包,如果需要对某个目录进行打包,需要加/,例如test目录打包,则值为:test/。;request.SetPrefix("");// 支持对存储桶中的多个文件进行打包,个数不能超过1000,如需打包更多文件,请使用UrlList或Prefix参数。;COSXML.Model.CI.CreateFileZipProcessJobs.KeyConfig keyConfig = new CreateFileZipProcessJobs.KeyConfig();keyConfig.key = "CITestImage.png";keyConfig.rename = "CITestImage.zip";keyConfig.imageParams = "";request.setKeyConfig(keyConfig);// 打包时如果单个文件出错,是否忽略错误继续打包。有效值为:ture:忽略错误继续打包后续的文件;false:遇到某个文件执行打包报错时,直接终止打包任务,不返回压缩包。默认值为 false。;request.SetIgnoreError ("true");// 透传用户信息,可打印的 ASCII 码,长度不超过1024。;request.SetUserData("");// 存储桶的地域。;request.SetRegion("");// 保存压缩后文件的存储桶。;request.SetBucket(bucket);// 压缩后文件的文件名;request.SetObjectInfo("");// 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。;request.SetCallBackFormat("");// 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。;request.SetCallBackType("Url");// 任务回调的地址,优先级高于队列的回调地址。;request.SetCallBack("");// 消息队列所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港);request.SetMqRegion("");// 消息队列使用模式,默认 Queue :主题订阅:Topic 队列服务: Queue;request.SetMqMode("");// TDMQ 主题名称;request.SetMqName("");request.createFileZipProcessJobs.GetInfo();CreateFileZipProcessJobsResult result = cosXml.createFileZipProcessJobs(request);Console.WriteLine(result.createFileZipProcessJobsResult.JobsDetail.JobId);}catch (COSXML.CosException.CosClientException clientEx){Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){Console.WriteLine("CosServerException: " + serverEx.GetInfo());}}public static void CreateFileZipProcessJobModelMain(){CreateFileZipProcessJobModel m = new CreateFileZipProcessJobModel();m.CreateFileZipProcessJob();}}}
说明
参数说明
初始化 COS 服务实例具体数据描述如下:
CreateFileZipProcessJobsRequest 的具体数据描述如下:
节点名称(关键字) | 描述 | 类型 | 是否必选 |
Tag | 表示任务的类型,多文件打包压缩默认为:FileCompress。 | String | 是 |
CallBackFormat | 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。 | String | 否 |
CallBackType | 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。 | String | 否 |
CallBack | 任务回调的地址,优先级高于队列的回调地址。 | String | 否 |
UserData | 透传用户信息,可打印的 ASCII 码,长度不超过1024。 | String | 否 |
Format | 打包压缩的类型,有效值:zip、tar、tar.gz。 | String | 是 |
Type | 压缩类型,仅在 Format 为 tar.gz 或 zip 时有效。 faster:压缩速度较快。 better:压缩质量较高,体积较小。 default:适中的压缩方式。 默认值为 default。 | String | 否 |
CompressKey | 压缩包密钥,传入时需先经过 base64编码,编码后长度不能超过128。当 Format 为 zip 时生效。 | String | 否 |
UrlList | 支持以文件清单的形式进行打包压缩,将需要打包的文件链接整理成索引文件,后台将对索引文件中的文件链接进行打包。 索引文件需要保存在当前存储桶中,本字段需要提供索引文件的对象地址,不需要带域名,填写示例:/test/index.csv。 索引文件规范: 支持的格式:仅支持 CSV 文件。 一行一个文件,其中 第一列(必填):文件的完整 URL,需进行 URLEncode(仅支持本存储桶文件)。 第二列(非必填):需要新建的目录,打包后文件将保存在该目录下,不填表示不新增目录。 第三列(非必填):文件重命名,打包后文件名将以该列为准,不填表示不更改文件名。 | String | 否 |
Prefix | 支持对存储桶中的文件前缀进行打包,如果需要对某个目录进行打包,需要加/,例如 test 目录打包,则值为:test/。 | String | 否 |
KeyConfig | 支持对存储桶中的文件进行打包,可填写多个,个数不能超过 1000,如需打包更多文件,请使用 UrlList 或 Prefix 参数。 | Container | 否 |
Flatten | 可以按照以下几种方式调整目录结构,有效值: 0:表示不去除压缩包内的目录结构,打包后压缩包中的文件会保留原有的目录结构。 1:表示去除所有目录结构,打包后压缩包内的所有文件都在同一层级。 2:仅对以 Prefix 方式打包压缩时有效,表示不去除压缩包内的目录结构,在打包时会先创建一个目录,以参数 Prefix 中的最后一层作为目录名称,目录内是当前打包的所有文件及文件夹。3:仅对以 Prefix 方式打包压缩时有效,表示不去除压缩包内的目录结构,在打包时直接将参数 Prefix 下的所有文件及文件夹(不包含参数Prefix 本身)进行打包,放在压缩包的根目录。示例: 假设以 Prefix 进行打包,Prefix 的值为 test/data/ ,则文件test/data/123/word.doc 在打包压缩结果如下:Flatten=0时:打包后,该文件在压缩包内为 test/data/123/word.doc 。Flatten=1时:打包后,该文件在压缩包内为 word.doc 。Flatten=2时:打包后,该文件在压缩包内为 data/123/word.doc 。Flatten=3时:打包后,该文件在压缩包内为 123/word.doc 。 | String | 是 |
IgnoreError | 打包时如果单个文件出错,是否忽略错误继续打包。有效值为: true:忽略错误继续打包后续的文件。 false:遇到某个文件执行打包报错时,直接终止打包任务,不返回压缩包。 默认值为 false。 | String | 否 |
Region | 存储桶的地域。 | String | 是 |
Bucket | 保存压缩后文件的存储桶。 | String | 是 |
Object | 压缩后文件的文件名。 | String | 是 |
Container 类型 KeyConfig 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Key | COSXML.Model.CI.CreateFileZipProcessJobs.KeyConfig | 存储桶中的包含路径的完整文件名称,请使用 UrlList 或 Prefix 参数。 | String | 是 |
ReName | COSXML.Model.CI.CreateFileZipProcessJobs.KeyConfig | 文件重命名,打包后文件名将以该值为准,不填表示不更改文件名。 | String | 否 |
ImageParams | COSXML.Model.CI.CreateFileZipProcessJobs.KeyConfig | String | 否 |
注意:
UrlList、Prefix、KeyConfig 三者仅能选择一个,不能都为空,也不会同时生效。如果填了多个,会按优先级 UrlList > Prefix > KeyConfig 取最高优先级执行。
返回结果说明
成功:返回 CreateFileZipProcessJobsResult 对象响应信息。具体响应参数同 提交多文件打包压缩任务的 Response。
失败:发生错误(如 Bucket 不存在),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理。
查询多文件打包压缩结果
功能说明
动查询指定的多文件打包压缩任务结果,根据任务 ID 查询任务详情。
示例代码
using COSXML;using COSXML.Auth;using COSXML.Model.CI;namespace COSXMLDemo{public class DescribeFileZipProcessJobsModel{public CosXml cosXml;// 初始化 COS 服务实例private void InitCosXml(){string region = Environment.GetEnvironmentVariable("COS_REGION");CosXmlConfig config = new CosXmlConfig.Builder().SetRegion(region) // 设置默认的地域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224.Build();string secretId = Environment.GetEnvironmentVariable("SECRET_ID"); // 云 API 密钥 SecretId, 获取 API 密钥请参照 https://console.cloud.tencent.com/cam/capistring secretKey = Environment.GetEnvironmentVariable("SECRET_KEY"); // 云 API 密钥 SecretKey, 获取 API 密钥请参照 https://console.cloud.tencent.com/cam/capilong durationSecond = 600; //每次请求签名有效时长,单位为秒QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond);this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);}DescribeFileZipProcessJobsModel(){InitCosXml();}public void DescribeFileZipProcessJobs(){try{string bucket = "bucketname-APPID";string jobId = "";DescribeFileZipProcessJobsRequest describeDocProcessJobsRequest = new DescribeFileZipProcessJobsRequest(bucket,jobId);DescribeFileZipProcessJobsResult describeFileZipProcessJobsResult= cosXml.describeFileZipProcessJobs(describeDocProcessJobsRequest);Console.WriteLine(describeFileZipProcessJobsResult.describeFileZipProcessJobsResult.JobsDetail.Count);}catch (COSXML.CosException.CosClientException clientEx){Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){Console.WriteLine("CosServerException: " + serverEx.GetInfo());}}public static void DescribeFileZipProcessJobsModelMain(){DescribeFileZipProcessJobsModel m = new DescribeFileZipProcessJobsModel();m.DescribeFileZipProcessJobs();}}}
说明
参数说明
初始化 COS 服务实例具体数据描述如下:
DescribeFileZipProcessJobsRequest 的具体数据描述如下:
参数名称 | 描述 | 类型 | 是否必选 |
bucketName | String | 是 | |
jobId | 要查询的任务 ID。 | String | 是 |
返回结果说明
成功: 返回任务详情响应包装类,类中包含一个 DescribeFileZipProcessJobsResult 任务详情对象。具体响应参数请参见 查询多文件打包压缩结果的 Response。
失败: 发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理。