文件解压

最近更新时间:2023-11-23 19:42:37

我的收藏

简介

本文档提供关于文件解压接口的 API 概览和 SDK 示例代码。
API
操作描述
以提交任务的方式进行文件解压缩,异步返回压缩包内被解压出来的文件,该接口属于 POST 请求。
本接口用于主动查询指定的文件解压任务结果。

提交文件解压任务

功能说明

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

方法原型

public Guzzle\\Service\\Resource\\Model createFileUncompressJobs(array $args = array());

请求示例

<?php

require dirname(__FILE__, 2) . '/vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', //协议头部,默认为http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
// https://cloud.tencent.com/document/product/436/83110 提交文件解压任务-异步
$result = $cosClient->createFileUncompressJobs(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Tag' => 'FileUncompress',
// 'QueueId' => 'pcc3ae89sa9d807fs89dg789sdg',
'Input' => array(
'Object' => 'test.zip',
),
'Operation' => array(
'UserData' => 'xxx',
'FileUncompressConfig' => array(
'Prefix' => 'prefix',
'PrefixReplaced' => '1',
),
'Output' => array(
'Region' => $region,
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
),
),
// 'CallBackFormat' => '',
// 'CallBackType' => '',
// 'CallBack' => '',
// 'CallBackMqConfig' => array(
// 'MqRegion' => '',
// 'MqMode' => '',
// 'MqName' => '',
// ),
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

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。
有效值:
0:不添加额外的前缀,解压缩将保存在 Prefix 指定的路径下(不会保留压缩包的名称,仅将压缩包内的文件保存至指定的路径)。
1:以压缩包本身的名称作为前缀,解压缩将保存在 Prefix 指定的路径下。
2:以压缩包完整路径作为前缀,此时如果不指定 Prefix,就是解压到压缩包所在的当前路径(包含压缩包本身名称)。

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

返回结果示例

GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjNkOGM2NmVfZTYxNmY5MSAASJPOJCIANSIDNAI=
[ContentType] => application/xml
[ContentLength] => 872
[JobsDetail] => Array
(
[Progress] => 0
[Code] => Success
[Message] =>
[JobId] => fcd32dbdaa13b11esa9ds8g0d98gd0h85
[Tag] => FileUncompress
[State] => Submitted
[CreationTime] => 2023-01-31T16:05:31+0800
[StartTime] => -
[EndTime] => -
[QueueId] => pcc3ae89sa9d807fs89dg789sdg
[Input] => Array
(
[BucketId] => examplebucket-1250000000
[Region] => ap-guangzhou
[Object] => test.zip
)

[Operation] => Array
(
[JobLevel] => 0
[UserData] => xxx
[Output] => Array
(
[Region] => ap-guangzhou
[Bucket] => examplebucket-1250000000
)

[FileUncompressConfig] => Array
(
[Prefix] => prefix
[PrefixReplaced] => 1
)

)

)

[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/file_jobs
)

查询文件解压结果

功能说明

本接口用于主动查询指定的文件解压任务结果。

方法原型

public Guzzle\\Service\\Resource\\Model getFileUncompressResult(array $args = array());

请求示例

<?php

require dirname(__FILE__, 2) . '/vendor/autoload.php';

$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\\Cos\\Client(
array(
'region' => $region,
'scheme' => 'https', //协议头部,默认为 http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
try {
// https://cloud.tencent.com/document/product/436/83111 查询文件解压结果
$result = $cosClient->getFileUncompressResult(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Key' => '', // jobId
));
// 请求成功
print_r($result);
} catch (\\Exception $e) {
// 请求失败
echo($e);
}

参数说明

Request 中的具体数据描述如下:
参数名称
类型
描述
是否必填
Bucket
String
存储桶名称,格式:BucketName-APPID
Key
String
jobId

返回结果示例

GuzzleHttp\\Command\\Result Object
(
[RequestId] => NjNkOGM2NmVfZTYxNmY5MSAASJPOJCIANSIDNAI=
[ContentType] => application/xml
[ContentLength] => 1092
[JobsDetail] => Array
(
[Progress] => 100
[Code] => Success
[Message] => success
[JobId] => fcd32dbdaa13b11esa9ds8g0d98gd0h85
[Tag] => FileUncompress
[State] => Success
[CreationTime] => 2023-01-31T16:05:31+0800
[StartTime] => 2023-01-31T16:05:31+0800
[EndTime] => 2023-01-31T16:05:31+0800
[QueueId] => pcc3ae89sa9d807fs89dg789sdg
[Input] => Array
(
[BucketId] => examplebucket-1250000000
[Region] => ap-guangzhou
[Object] => test.zip
)

[Operation] => Array
(
[JobLevel] => 0
[UserData] => xxx
[Output] => Array
(
[Region] => ap-guangzhou
[Bucket] => examplebucket-1250000000
)

[FileUncompressConfig] => Array
(
[Prefix] => prefix
[PrefixReplaced] => 1
)

[FileUncompressResult] => Array
(
[Region] => ap-guangzhou
[Bucket] => examplebucket-1250000000
[FileCount] => 6
)

)

)

[Key] => fcd32dbdaa13b11esa9ds8g0d98gd0h85
[Bucket] => examplebucket-1250000000
[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/file_jobs/fcd32dbdaa13b11esa9ds8g0d98gd0h85
)