tencent cloud

文档反馈

提交文件解压任务

最后更新时间:2023-12-30 10:42:04

    功能描述

    以提交任务的方式进行文件解压缩,异步返回压缩包内被解压出来的文件,该接口属于 POST 请求。

    费用说明

    调用接口会产生文件解压费用和 COS 读请求费用
    如果文件为 COS 上的低频存储类型,调用会产生 COS 低频数据取回费用
    不支持解压 COS 上的归档存储类型和深度归档存储类型的文件,如果解压需要此类型文件,请先 恢复归档文件

    限制说明

    文件大小支持:支持解压小于 5 TB 的压缩包文件。
    文件解压的处理方式为流式解压,会边解压边输出解压文件,如果解压过程中有部分文件损坏导致解压操作中止,会保留已解压的部分文件。
    调用接口需携带签名,具体规则请参见 请求签名 文档。
    本接口当前支持以下地域:北京、上海、广州、成都、中国香港、新加坡、硅谷。

    请求

    请求示例

    POST /file_jobs HTTP/1.1
    Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
    Date: <GMT Date>
    Authorization: <Auth String>
    Content-Length: <length>
    Content-Type: application/xml
    
    <body>
    说明
    Authorization: Auth String(详情请参见 请求签名 文档)。
    通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。

    请求头

    此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

    请求体

    该请求操作的实现需要有如下请求体。
    <Request>
    <Tag>FileUncompress</Tag>
    <Input>
    <Object>input/test.zip</Object>
    </Input>
    <Operation>
    <FileUncompressConfig>
    <Prefix>output/</Prefix>
    <PrefixReplaced>1</PrefixReplaced>
    </FileUncompressConfig>
    <Output>
    <Region>ap-chongqing</Region>
    <Bucket>test-1234567890</Bucket>
    </Output>
    <UserData>This is my data.</UserData>
    </Operation>
    <QueueId>p2911917386e148639319e13c285cc774</QueueId>
    <CallBack>http://callback.demo.com</CallBack>
    <CallBackFormat>JSON<CallBackFormat>
    </Request>
    具体的数据描述如下:
    节点名称(关键字)
    父节点
    描述
    类型
    是否必选
    Request
    保存请求的容器。
    Container
    Container 类型 Request 的具体数据描述如下:
    节点名称(关键字)
    父节点
    描述
    类型
    是否必选
    Tag
    Request
    表示任务的类型,文件解压默认为:FileUncompress。
    String
    Input
    Request
    包含待操作的文件信息。
    Container
    Operation
    Request
    包含文件解压的处理规则。
    Container
    QueueId
    Request
    任务所在的队列 ID。
    String
    CallBackFormat
    Request
    任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式。
    String
    CallBackType
    Request
    任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型。
    String
    CallBack
    Request
    任务回调的地址,优先级高于队列的回调地址。
    String
    CallBackMqConfig
    Request
    任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig
    Container
    Container 类型 Input 的具体数据描述如下:
    节点名称(关键字)
    父节点
    描述
    类型
    是否必选
    Object
    Request.Input
    文件名,取值为文件在当前存储桶中的完整名称。
    String
    Container 类型 Operation 的具体数据描述如下:
    节点名称(关键字)
    父节点
    描述
    类型
    是否必选
    FileUncompressConfig
    Request.Operation
    指定文件解压的处理规则。
    Container
    UserData
    Request.Operation
    透传用户信息, 可打印的 ASCII 码, 长度不超过1024
    String
    Output
    Request.Operation
    指定解压后的文件保存的存储桶信息。
    Container
    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。
    Container 类型 Output 的具体数据描述如下:
    节点名称(关键字)
    父节点
    描述
    类型
    是否必选
    Region
    Request.Operation.Output
    存储桶的地域。
    String
    Bucket
    Request.Operation.Output
    保存解压后文件的存储桶。
    String

    响应

    响应头

    此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

    响应体

    该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
    <Response>
    <JobsDetail>
    <Code>Success</Code>
    <Message/>
    <JobId>f93984788066911ed89ed352d4d9d2084</JobId>
    <State>Submitted</State>
    <CreationTime>2022-07-18T15:16:43+0800</CreationTime>
    <EndTime>-</EndTime>
    <StartTime>-</StartTime>
    <QueueId>p2911917386e148639319e13c285cc774</QueueId>
    <Tag>FileUncompress</Tag>
    <Input>
    <BucketId>test-1234567890</BucketId>
    <Object>input/test.zip</Object>
    <Region>ap-chongqing</Region>
    </Input>
    <Operation>
    <FileUncompressConfig>
    <Prefix>output/</Prefix>
    <PrefixReplaced>1</PrefixReplaced>
    </FileUncompressConfig>
    <Output>
    <Region>ap-chongqing</Region>
    <Bucket>test-1234567890</Bucket>
    </Output>
    <UserData>This is my data.</UserData>
    </Operation>
    </JobsDetail>
    </Response>
    具体的数据内容如下:
    节点名称(关键字)
    父节点
    描述
    类型
    Response
    保存结果的容器。
    Container
    Container 节点 Response 的内容:
    节点名称(关键字)
    父节点
    描述
    类型
    JobsDetail
    Response
    任务的详细信息。
    Container
    Container 节点 JobsDetail 的内容:
    节点名称(关键字)
    父节点
    描述
    类型
    Code
    Response.JobsDetail
    错误码,只有 State 为 Failed 时有意义。
    String
    Message
    Response.JobsDetail
    错误描述,只有 State 为 Failed 时有意义。
    String
    JobId
    Response.JobsDetail
    新创建任务的 ID。
    String
    Tag
    Response.JobsDetail
    表示任务的类型,文件解压默认为:FileUncompress。
    String
    State
    Response.JobsDetail
    任务的状态,为 Submitted(已提交)、Running(进行中)、Success(成功)、Failed(失败)、Pause(已暂停)、Cancel(已取消) 其中一个
    String
    CreationTime
    Response.JobsDetail
    任务的创建时间。
    String
    StartTime
    Response.JobsDetail
    任务的开始时间。
    String
    EndTime
    Response.JobsDetail
    任务的结束时间。
    String
    QueueId
    Response.JobsDetail
    任务所属的队列 ID。
    String
    Input
    Response.JobsDetail
    被解压文件的信息。
    Container
    Operation
    Response.JobsDetail
    文件解压的处理规则。
    Container
    Container 节点 Input 的内容:
    节点名称(关键字)
    父节点
    描述
    类型
    Region
    Response.JobsDetail.Input
    存储桶所在地域。
    String
    Bucket
    Response.JobsDetail.Input
    文件所在的存储桶。
    String
    Object
    Response.JobsDetail.Input
    被解压文件的文件名。
    String
    Container 节点 Operation 的内容:
    节点名称(关键字)
    父节点
    描述
    类型
    UserData
    Response.JobsDetail.Operation
    透传用户信息。
    String
    Output
    Response.JobsDetail.Operation
    同请求中的 Request.Operation.Output
    Container
    FileUncompressConfig
    Response.JobsDetail.Operation
    同请求中的 Request.Operation.FileUncompressConfig。
    Container
    FileUncompressResult
    Response.JobsDetail.Operation
    文件解压的结果,任务未完成时不返回。
    Container
    Container 节点 FileUncompressResult 的内容:
    节点名称(关键字)
    父节点
    描述
    类型
    Region
    Response.JobsDetail.Operation.FileUncompressResult
    解压后文件保存的存储桶的地域
    String
    Bucket
    Response.JobsDetail.Operation.FileUncompressResult
    解压后文件保存的存储桶
    String
    FileCount
    Response.JobsDetail.Operation.FileUncompressResult
    解压后文件的个数
    String

    错误码

    该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。

    实际案例

    请求

    POST /file_jobs HTTP/1.1
    Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0ea057
    Host:test-1234567890.ci.ap-chongqing.myqcloud.com
    Content-Length: 166
    Content-Type: application/xml
    
    <Request>
    <Tag>FileUncompress</Tag>
    <Input>
    <Object>input/test.zip</Object>
    </Input>
    <Operation>
    <FileUncompressConfig>
    <Prefix>output/</Prefix>
    <PrefixReplaced>1</PrefixReplaced>
    </FileUncompressConfig>
    <Output>
    <Region>ap-chongqing</Region>
    <Bucket>test-1234567890</Bucket>
    </Output>
    <UserData>This is my data.</UserData>
    </Operation>
    <QueueId>p2911917386e148639319e13c285cc774</QueueId>
    <CallBack>http://callback.demo.com</CallBack>
    <CallBackFormat>JSON<CallBackFormat>
    </Request>

    响应

    HTTP/1.1 200 OK
    Content-Type: application/xml
    Content-Length: 230
    Connection: keep-alive
    Date: Mon, 18 Jul 2022 19:37:29 GMT
    Server: tencent-ci
    x-ci-request-id: NjMxMDJhYTNfMThhYTk0MGFfYmU1OV8zZjc=
    
    <Response>
    <JobsDetail>
    <Code>Success</Code>
    <Message/>
    <JobId>f93984788066911ed89ed352d4d9d2084</JobId>
    <State>Submitted</State>
    <CreationTime>2022-07-18T15:16:43+0800</CreationTime>
    <EndTime>-</EndTime>
    <StartTime>-</StartTime>
    <QueueId>p2911917386e148639319e13c285cc774</QueueId>
    <Tag>FileUncompress</Tag>
    <Input>
    <BucketId>test-1234567890</BucketId>
    <Object>input/test.zip</Object>
    <Region>ap-chongqing</Region>
    </Input>
    <Operation>
    <FileUncompressConfig>
    <Prefix>output/</Prefix>
    <PrefixReplaced>1</PrefixReplaced>
    </FileUncompressConfig>
    <Output>
    <Region>ap-chongqing</Region>
    <Bucket>test-1234567890</Bucket>
    </Output>
    <UserData>This is my data.</UserData>
    </Operation>
    </JobsDetail>
    </Response>