本文介绍如何操作用户Bucket中的压缩包和待压缩文件,包括查看压缩包内容、将压缩文件进行解压缩处理以及将用户Bucket内的多个文件进行压缩。适用于各种场景,如数据备份、存档管理、文件传输等。通过使用这些方法,用户可以更高效地管理和处理存储在Bucket中的数据,提高数据传输速度、减少存储空间占用,以及方便地进行文件归档和共享。
功能简介
智能媒体管理服务提供了云上资源的压缩和解压缩功能,该功能帮助用户高效、便捷地进行云上文件管理,用户可以根据需要使用该功能对OSS中的文件进行在线压缩和解压缩。
前提条件
已创建并获取AccessKey。具体操作,请参见创建AccessKey。
已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见控制台上传文件。
已开通智能媒体管理服务。具体操作,请参见开通产品。
已通过智能媒体管理控制台创建项目。具体操作,请参见创建项目。
说明您也可以调用API接口创建项目。具体操作,请参见CreateProject - 创建项目。
您可以调用ListProjects - 列出所有项目信息的列表接口列出指定地域下已创建的所有项目信息。
注意事项
压缩、查看压缩包内容、解压缩各任务开始执行后,任务信息只保存7天,超过7天则无法再获取。您可以通过以下四种方式及时获取任务信息:
调用GetTask - 获取任务信息或ListTasks - 列出任务接口获取返回的
TaskId
,查看任务信息。在与智能媒体管理相同的地域下开通MNS服务,并配置订阅关系,及时获取任务信息通知,异步通知消息格式请参见异步通知消息格式。关于MNS SDK的更多信息,请参见步骤四:接收和删除消息。
在与智能媒体管理相同的地域下开通RocketMQ服务,并创建RocketMQ 4.0实例、Topic、Group,及时获取任务信息通知,异步通知消息格式请参见异步通知消息格式。关于RocketMQ使用的更多信息,请参见调用HTTP协议的SDK收发普通消息。
在与智能媒体管理相同的地域下开通并接入事件总线EventBridge服务,及时获取任务信息通知。更多信息,请参见智能媒体管理IMM事件。
压缩
调用CreateFileCompressionTask - 创建文件压缩任务接口将OSS Bucket中的多个文件进行压缩处理。
压缩信息
项目名称:test-project
待压缩文件:
oss://test-bucket/test-object1.jpg
oss://test-bucket/test-object2.jpg
oss://test-bucket/test-object3.jpg
oss://test-bucket/test-object4.jpg
输出压缩文件的OSS地址:oss://test-bucket/test-target-object.zip
请求示例
{
"ProjectName": "test-project",
"CompressedFormat": "zip",
"Sources": "[{\"URI\":\"oss://test-bucket/test-object1.jpg\"},{\"URI\":\"oss://test-bucket/test-object2.jpg\"},{\"URI\":\"oss://test-bucket/test-object3.jpg\"},{\"URI\":\"oss://test-bucket/test-object4.jpg\"}]",
"TargetURI": "oss://test-bucket/test-target-object.zip"
}
返回示例
{
"TaskId": "FileCompression-7e3e2b8c-81bd-495f-a338-25b3762a****",
"RequestId": "C54C5888-9C96-5A35-AF73-ABD6EF15****",
"EventId": "164-1S6uXTYhUU4qAFCPOTcYdcb****"
}
示例代码
查看压缩包内容
调用CreateArchiveFileInspectionTask - 创建压缩包解析任务接口查看OSS压缩包内容。
压缩包信息
项目名称:test-project
压缩包路径:oss://test-bucket/test-target-object.zip
任务执行结果保存地址:oss://test-bucket/test-target-object.json
请求示例
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-target-object.zip",
"TargetURI": "oss://test-bucket/test-target-object.json"
}
返回示例
{
"TaskId": "ArchiveFileInspection-4a7c308a-5671-4d34-ba41-86a942d0****",
"RequestId": "20D23855-C9E6-5193-8939-3A8797E1****",
"EventId": "2AB-1S53L6FTdU6yMxkc1JgpwcV****"
}
示例代码
解压缩
调用CreateFileUncompressionTask - 创建解压缩任务接口对OSS中的压缩包进行解压缩处理。
解压缩信息
项目名称:test-project
压缩包路径:oss://test-bucket/test-target-object.zip
待解压缩文件:test-object1.jpg
解压缩文件的存放路径:oss://test-bucket/test-target-object
请求示例
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-target-object.zip",
"Target": "{\"URI\":\"oss://test-bucket/test-target-object\"}",
"SelectedFiles": "[\"test-object1.jpg\"]"
}
返回示例
{
"TaskId": "FileUncompression-f31061ab-eaeb-469d-ac8f-9af10e5d****",
"RequestId": "20115435-9F59-58C0-8D15-E6ECC096****",
"EventId": "3B6-1S6ywKAB2ogXJnrzmk6tFUF****"
}
示例代码
FAQ
通过CreateFileCompressionTask接口创建zip成功后,需要多久才能获取到压缩后的zip文件?
可以通过GetTask - 获取任务信息接口轮询任务状态,或者通过异步任务MNS消息处理示例异步接收成功的消息。