tencent cloud

对象存储

动态与公告
产品动态
产品公告
产品简介
产品概述
功能概览
应用场景
产品优势
基本概念
地域和访问域名
规格与限制
产品计费
计费概述
计费方式
计费项
免费额度
计费示例
查看和下载账单
欠费说明
常见问题
快速入门
控制台快速入门
COSBrowser 快速入门
用户指南
创建请求
存储桶
对象
数据管理
批量处理
全球加速
监控与告警
运维中心
数据处理
内容审核
智能工具箱
数据工作流
应用集成
工具指南
工具概览
环境安装与配置
COSBrowser 工具
COSCLI 工具
COSCMD 工具
COS Migration 工具
FTP Server 工具
Hadoop 工具
COSDistCp 工具
HDFS TO COS 工具
GooseFS-Lite 工具
在线辅助工具
自助诊断工具
实践教程
概览
访问控制与权限管理
性能优化
使用 AWS S3 SDK 访问 COS
数据容灾备份
域名管理实践
图片处理实践
COS 音视频播放器实践
工作流实践
数据直传
内容审核实践
数据安全
数据校验
大数据实践
COS 成本优化解决方案
在第三方应用中使用 COS
迁移指南
本地数据迁移至 COS
第三方云存储数据迁移至 COS
以 URL 作为源地址的数据迁移至 COS
COS 之间数据迁移
Hadoop 文件系统与 COS 之间的数据迁移
数据湖存储
云原生数据湖
元数据加速
数据加速器 GooseFS
数据处理
数据处理概述
图片处理
媒体处理
内容审核
文件处理
文档处理
故障处理
获取 RequestId 操作指引
通过外网上传文件至 COS 缓慢
访问 COS 时返回403错误码
资源访问异常
POST Object 常见异常
API 文档
简介
公共请求头部
公共响应头部
错误码
请求签名
操作列表
Service 接口
Bucket 接口
Object 接口
批量处理接口
数据处理接口
任务与工作流
内容审核接口
云查毒接口
SDK 文档
SDK 概览
准备工作
Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Flutter SDK
Go SDK
iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
React Native SDK
小程序 SDK
错误码
鸿蒙(Harmony) SDK
终端 SDK 质量优化
安全与合规
数据容灾
数据安全
访问管理
常见问题
热门问题
一般性问题
计费计量问题
域名合规问题
存储桶配置问题
域名和 CDN 问题
文件操作问题
日志监控问题
权限管理问题
数据处理问题
数据安全问题
预签名 URL 问题
SDK 类问题
工具类问题
API 类问题
服务协议
Service Level Agreement
隐私政策
数据处理和安全协议
联系我们
词汇表

文件压缩

PDF
聚焦模式
字号
最后更新时间: 2024-01-19 16:15:11

简介

本文档提供关于数据万象文件压缩的 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

返回结果说明

帮助和支持

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

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

文档反馈