tencent cloud

数据万象

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
应用场景
功能概览
地域与域名
使用限制
产品计费
计费概述
计费方式
计费项
免费额度
欠费说明
查看消费明细
常见问题
快速入门
注册与登录
绑定存储桶
上传和处理文件
下载和删除文件
解绑存储桶
通过 COS 使用数据万象
能力地图
图片处理
媒体处理
内容审核
AI 内容识别
文档处理
智能语音
文件处理
用户指南
概览
存储桶管理
智能工具箱
任务与工作流
数据监控
用量统计
实践教程
版权保护解决方案
图片处理实践
API 授权策略使用指引
工作流实践
API 文档
API 概览
结构体
公共请求头部
公共响应头部
开通万象服务
图片处理
AI 内容识别
智能语音
媒体处理
内容审核
文档处理
文件处理
任务与工作流
云查毒
错误码
请求签名
SDK 文档
SDK 概览
图片处理 Android SDK
图片处理 iOS SDK
COS Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Go SDK
COS iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
小程序 SDK
SDK 产品个人信息保护规则
安全与合规
权限管理
常见问题
基础设置
文档处理
媒体处理
内容识别
智能语音
服务协议
Service Level Agreement
联系我们
词汇表

文件压缩

PDF
聚焦模式
字号
最后更新时间: 2024-03-13 10:07:10

简介

本文档提供关于数据万象文件压缩的 API 概览以及 SDK 示例代码。
注意:
COS Javascript SDK 版本需要大于等于 v1.3.1。
API
操作描述
创建一个多文件打包压缩任务
查询指定的多文件打包压缩任务结果

提交多文件打包压缩任务

功能说明

多文件打包压缩功能可以将您的多个文件,打包为 zip 等压缩包格式,以提交任务的方式进行多文件打包压缩,异步返回打包后的文件。

示例代码

function postFileCompressTask() {
var config = {
// 需要替换成您自己的存储桶信息
Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */
Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */
};
var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/file_jobs';
var url = 'https://' + host;
var body = COS.util.json2xml({
Request: {
Tag: 'FileCompress', // 必须
Operation: {
FileCompressConfig: {
Flatten: '0', // 文件打包时,是否需要去除源文件已有的目录结构.0:不需要;1:需要
Format: 'zip', // 打包压缩的类型,有效值:zip、tar、tar.gz
// UrlList、Prefix、Key 三者仅能选择一个,不能都为空,也不会同时生效
// UrlList: '', // 索引文件的对象地址
Prefix: 'testCompress/', // 目录前缀
// Key: [], // 支持对存储桶中的多个文件进行打包,个数不能超过 1000, 总大小不超过50G,否则会导致任务失败
},
Output: {
Bucket: config.Bucket, // 保存压缩后文件的存储桶
Region: config.Region, // 保存压缩后文件的存储桶地域
Object: 'testCompress/compressed.zip', // 压缩后文件的文件名
},
UserData: '',
},
// QueueId: '', // 任务所在的队列 ID
// CallBack: 'http://callback.demo.com', // 任务回调的地址
// CallBackFormat: 'JSON', // 任务回调格式
// CallBackType: 'Url', // 任务回调类型,Url 或 TDMQ,默认 Url
}
});
cos.request({
Method: 'POST',
Key: 'file_jobs',
Url: url,
Body: body,
ContentType: 'application/xml',
},
function(err, data){
console.log(err || data);
});
}
postFileCompressTask();

参数说明

Request 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Tag
Request
表示任务的类型,多文件打包压缩默认为:FileCompress。
String
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 类型 Operation 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
FileCompressConfig
Request.Operation
指定文件打包压缩的处理规则。
Container
UserData
Request.Operation
透传用户信息, 可打印的 ASCII 码, 长度不超过1024
String
Output
Request.Operation
指定打包压缩后的文件保存的地址信息。
Container
Container 类型 FileCompressConfig 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Flatten
Request.Operation.FileCompressConfig
文件打包时,是否需要去除源文件已有的目录结构,有效值:
0:不需要去除目录结构,打包后压缩包中的文件会保留原有的目录结构;
1:需要,打包后压缩包内的文件会去除原有的目录结构,所有文件都在同一层级。
例如:源文件 URL 为 https://domain/source/test.mp4, 则源文件路径为 source/test.mp4,如果为 1,则 ZIP 包中该文件路径为 test.mp4;如果为0, ZIP 包中该文件路径为 source/test.mp4。
String
Format
Request.Operation.FileCompressConfig
打包压缩的类型,有效值:zip、tar、tar.gz。
String
UrlList
Request.Operation.FileCompressConfig
支持将需要打包的文件整理成索引文件,后台将根据索引文件内提供的文件url,打包为一个压缩包文件。索引文件需要保存在当前存储桶中,本字段需要提供索引文件的对象地址,例如:/test/index.csv。
索引文件格式:仅支持 CVS文件,一行一条URL(仅支持本存储桶文件),如有多列字段,默认取第一列作为URL。最多不超过10000个文件, 总大小不超过50G, 否则会导致任务失败。
String
Prefix
Request.Operation.FileCompressConfig
支持对存储桶中的某个前缀进行打包,如果需要对某个目录进行打包,需要加/,例如test目录打包,则值为:test/。最多不超过10000个文件,总大小不超过50G,否则会导致任务失败。
String
Key
Request.Operation.FileCompressConfig
支持对存储桶中的多个文件进行打包,个数不能超过 1000, 总大小不超过50G,否则会导致任务失败。
String数组

注意:
UrlList、Prefix、Key 三者仅能选择一个,不能都为空,也不会同时生效。如果填了多个,会按优先级 UrlList > Prefix > Key 取最高优先级执行。
Container 类型 Output 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Region
Request.Operation.Output
存储桶的地域。
String
Bucket
Request.Operation.Output
保存压缩后文件的存储桶。
String
Object
Request.Operation.Output
压缩后文件的文件名
String

返回结果说明



查询多文件打包压缩结果

功能说明

查询一个文件处理任务,根据任务 ID 查询任务详情。

示例代码

function getFileCompressTask() {
var config = {
// 需要替换成您自己的存储桶信息
Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */
Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */
};
var jobId = 'xxxxxx'; // 提交文件压缩任务后会返回当前任务的 jobId
var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/file_jobs/' + jobId;
var url = 'https://' + host;
cos.request({
Method: 'GET',
Key: 'file_jobs/' + jobId,
Url: url,
},
function(err, data){
console.log(err || data);
});
}
getFileCompressTask();

参数说明

参数名称
描述
类型
是否必选
jobId
要查询的任务 ID
String

返回结果说明

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈