对象存储OSS提供了ZIP文件自动解压的功能,若您想实现更多文件格式的自动解压例如.tar.gz、.tar.bz2、.tar.xz等,则需配置函数计算的OSS触发器,并编写相应的逻辑代码。本文介绍如何实现自动解压上传至对象存储OSS的多种格式的压缩文件。

前提条件

背景信息

流程图如下:principle
说明 压缩文件建议使用标准的ZIP和TAR命令行进行压缩,函数使用的是Python3.6相关解压库实现。

解压大文件

如压缩文件较大,包含太多文件,解压函数可能会超时,造成解压不完全。函数计算结合Serverless工作流服务提供了一个海量文件解压方案。

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击应用中心
  3. 应用中心页面,单击基于模板创建应用
    image1
  4. 新建应用页面,选择OSS文件解压 > 配置并部署
    image2
  5. OSS文件解压页面,配置相关参数,然后单击部署
    说明 目前该应用仅在华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)地域可用,且仅支持解压ZIP格式的文件。

    如果仍不能满足您解压大文件的需求,您可以使用大规格实例进行解压,详情请参见实例规格

解压不同格式文件的配置方式

  1. 您可以执行以下操作解压示例工程:
    • 如果您已成功安装Git软件,您需要执行以下命令。
      git clone https://github.com/awesome-fc/decompress-oss.git
    • 如果您没有安装Git,您可以直接下载ZIP代码包
  2. 修改template.yml中的配置并保存。
    1. 将文件中BucketName的值修改为您的Bucket名称。
    2. 将文件中Project的默认值decompress-log-pro修改为您自己的Project名称,且要求全局唯一。
    3. 按需修改OSS触发器前缀Prefix、后缀Suffix以及解压后文件保存目录PROCESSED_DIR
      说明 OSS触发器前缀默认为src/,解压后文件保存目录默认为dst/
  3. template.yml文件所在目录下,执行fun deploy命令部署工程。
  4. 成功部署后,您可以在您的Bucket中上传后缀为.zip、.tar.gz、.tar.bz2、.tar.xz等压缩文件到指定的目录,默认目录是scr/,触发解压函数执行。
    解压后的文件会自动生成到指定目录,默认目录是dst