对象存储OSS提供了ZIP文件自动解压的功能,若您想实现更多文件格式的自动解压例如tar.gz、tar.bz2、tar.xz等,则需配置函数计算的OSS触发器,并编写相应的逻辑代码。本文介绍如何实现自动解压上传至对象存储OSS的多种格式的压缩文件。
背景信息
流程图如下:
说明 压缩文件建议使用标准的ZIP和TAR命令行进行压缩,函数使用的是Python3.6相关解压库实现。
解压大文件
如压缩文件较大,包含太多文件,解压函数可能会超时,造成解压不完全。函数计算结合Serverless工作流服务提供了一个海量文件解压方案。
- 登录函数计算控制台。
- 在左侧导航栏,单击应用中心。
- 在应用中心页面,单击基于模板创建应用。
- 在新建应用页面,选择。
- 在OSS文件解压页面,配置相关参数,然后单击部署。
说明 目前该应用仅在华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)地域可用,且仅支持解压ZIP格式的文件。
如果仍不能满足您解压大文件的需求,请联系我们。
解压不同格式文件的配置方式
- 您可以执行以下操作解压示例工程:
- 修改template.yml中的配置并保存。
- 将文件中BucketName的
your-bucket
修改为您的Bucket名称。
- 将文件中Project的
decompress-log-pro
修改为您的Project名称,且要求全局唯一。
- 按需修改OSS触发器前缀Prefix、后缀Suffix以及解压后的文件保存目录PROCESSED_DIR。
说明 本文示例中OSS触发器前缀默认为src/,您可以设置为src,解压后文件保存目录默认为dst/。
- 在template.yml文件所在目录下,执行
fun deploy
命令部署工程。
- 成功部署后,您可以在您的Bucket中上传后缀为ZIP、tar.gz、tar.bz2、tar.xz等压缩文件到指定的目录,本文示例的默认目录是src/,触发解压函数执行。
解压后的文件会自动生成到指定目录,默认目录是dst。