简介
本文档提供关于数据万象文件处理解压任务的相关 API 概览以及 SDK 示例代码。
注意:
提交文件解压任务
功能说明
以提交任务的方式进行文件解压缩,异步返回压缩包内被解压出来的文件
方法原型
public FileProcessJobResponse createFileProcessJob(FileProcessRequest request);
参数说明
Request 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
tag | Request | 表示任务的类型,文件解压默认为:FileUncompress。 | String | 是 |
input | Request | 包含待操作的文件信息。 | Container | 是 |
operation | Request | 包含文件解压的处理规则。 | Container | 是 |
queueId | Request | String | 否 | |
callBackFormat | Request | 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。 | String | 否 |
callBackType | Request | 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。 | String | 否 |
callBack | Request | 任务回调的地址,优先级高于队列的回调地址。 | String | 否 |
callBackMqConfig | Request | Container | 否 |
Input 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
object | Request.Input | 文件名,取值为文件在当前存储桶中的完整名称。 | String | 是 |
operation 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
fileUncompressConfig | Request.Operation | 指定文件解压的处理规则。 | Container | 是 |
userData | Request.Operation | 透传用户信息,可打印的 ASCII 码,长度不超过1024。 | String | 否 |
output | Request.Operation | 指定解压后的文件保存的存储桶信息。 | Container | 是 |
FileUncompressConfig 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
prefix | Request.Operation.FileUncompressConfig | 指定解压后输出文件的前缀,不填则默认保存在存储桶根路径。 | String | 否 |
prefixReplaced | Request.Operation.FileUncompressConfig | 指定解压后的文件路径是否需要替换前缀,有效值: 0:不添加额外的前缀,解压缩将保存在Prefix指定的路径下(不会保留压缩包的名称,仅将压缩包内的文件保存至指定的路径)。 1:以压缩包本身的名称作为前缀,解压缩将保存在Prefix指定的路径下。 2:以压缩包完整路径作为前缀,此时如果不指定Prefix,就是解压到压缩包所在的当前路径(包含压缩包本身名称)。 默认值为0。 | String | 否 |
说明:
假设压缩包名为 test.zip,压缩包内的文件为“图片.jpg”,存储在了存储桶 A 的 123 目录下,则压缩包的完整路径为:123/test.zip。
对该压缩包进行解压缩,指定解压缩到存储桶A,并指定
Prefix
为 456,则不同的PrefixReplaced
值对应解压后的文件保存情况如下:0:“图片.jpg”会保存在 456 目录下,“图片.jpg”的完整路径为 456/图片.jpg;
1:“图片.jpg”会以 test 为前缀保存在 456 目录下,“图片.jpg”的完整路径为 456/test/图片.jpg;
2:“图片.jpg”会以 123/test 为前缀保存在 456 目录下,“图片.jpg”的完整路径为 456/123/test/图片.jpg。
Output 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
region | Request.Operation.Output | 存储桶的地域。 | String | 是 |
bucket | Request.Operation.Output | 保存解压后文件的存储桶。 | String | 是 |
返回结果说明
成功:返回 FileProcessJobResponse 对象响应信息。
失败:发生错误(如 Bucket 不存在),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理。
请求示例
//1.创建任务请求对象FileProcessRequest request = new FileProcessRequest();//2.添加请求参数 参数详情请见 API 接口文档request.setBucketName("demo-1234567890");request.setTag(FileProcessJobType.FileUncompress);request.getInput().setObject("output/demo.zip");FileUnCompressConfig fileUnCompressConfig = request.getOperation().getFileUnCompressConfig();fileUnCompressConfig.setPrefix("output/");fileUnCompressConfig.setPrefixReplaced("1");MediaOutputObject output = request.getOperation().getOutput();output.setBucket("demo-1234567890");output.setRegion("ap-shanghai");//3.调用接口,获取任务响应对象FileProcessJobResponse response = client.createFileProcessJob(request);
查询文件解压结果
功能说明
查询一个文件处理任务,根据任务 ID 查询任务详情。
方法原型
public FileProcessJobResponse describeFileProcessJob(FileProcessRequest request);
参数说明
参数名称 | 描述 | 类型 | 是否必选 |
bucketName | String | 是 | |
jobId | 要查询的任务 ID。 | String | 是 |
返回结果说明
成功: 返回任务详情响应包装类,类中包含一个 FileProcessJobResponse 任务详情对象。
失败: 发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理。
请求示例
//1.创建任务请求对象FileProcessRequest request=new FileProcessRequest();//2.添加请求参数 参数详情请见 API 接口文档request.setBucketName("demo-1234567890");request.setJobId("fda7eb1607b8411ed8c182156726*****");//3.调用接口,获取任务响应对象FileProcessJobResponse response=client.describeFileProcessJob(request);