对象存储OSS提供了ZIP文件自动解压的功能,若您需实现更多文件格式的自动解压例如.tar、.gz、.zip等,则需配置函数计算的OSS触发器,并编写函数相应的逻辑代码。本文以Python 3.6语言为例,介绍如何使用Serverless Devs和函数计算控制台实现文件的自动解压并上传至对象存储。

背景信息

流程图如下:principle
说明 压缩文件建议使用标准的ZIP和TAR命令行进行压缩。

(推荐)使用Serverless Devs实现压缩文件的自动解压

前提条件

  1. 开通函数计算对象存储
  2. 创建存储空间
  3. 安装Serverless Devs
  4. 配置Serverless Devs
  5. 安装Git软件

操作步骤

  1. 执行以下命令,下载示例工程。
    git clone https://github.com/awesome-fc/decompress-oss.git
  2. 执行以下命令,进入项目目录。
    cd decompress-oss
  3. 编辑s.yaml文件内的配置信息并保存。
    • 将文件内的bucketName的参数信息your-bucket修改为您创建的Bucket的名称。
    • 可选:按需修改OSS触发器前缀Prefix、后缀Suffix和解压后文件保存的目录PROCESSED_DIR的参数信息。
    说明 本文示例中OSS触发器前缀默认为src/,您可以设置为src;解压后文件保存目录默认为dst/
  4. 执行以下命令,部署项目。
    s fc-decompress-oss-invoke-fc-EnhancedInstance deploy -y
    输出示例:
     Checking Service, Function, Triggers (18.63s)
     Creating Service, Function, Triggers (13.44s)
    
    There is auto config in the service: enhancedInstance-decompress
    
    Tips for next step
    ======================
    * Display information of the deployed resource: s info
    * Display metrics: s metrics
    * Display logs: s logs
    * Invoke remote function: s invoke
    * Remove Service: s remove service
    * Remove Function: s remove function
    * Remove Trigger: s remove trigger
    * Remove CustomDomain: s remove domain
    
    
    fc-decompress-oss-invoke-fc-EnhancedInstance:
      region:   cn-hangzhou
      service:
        name: enhancedInstance-decompress
      function:
        name:       oss-invoke-fc
        runtime:    python3
        handler:    index.handler
        memorySize: 4096
        timeout:    7200
      triggers:
        -
          type: oss
          name: zip-t
        -
          type: oss
          name: gz-t
        -
          type: oss
          name: tar-t
  5. 成功部署后,您可以在您的Bucket中上传后缀为.zip、.tar、.gz等压缩文件到指定的目录,本文示例的默认目录是src/,触发解压函数执行。
    解压后的文件会自动生成到指定目录,默认目录是/dst

使用函数计算控制台实现压缩文件的自动解压

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

前提条件

  1. 开通函数计算对象存储
  2. 创建存储空间
  3. 配置ZIP包解压规则

操作步骤

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击应用商店
  3. 应用中心页面的应用模板区域,单击实时文件处理页签。
  4. 实时文件处理应用页签,选择OSS文件解压 > 配置部署
    image2
  5. 新建模板应用页面,配置相关参数,然后单击部署
    说明 目前该应用仅在华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)、新加坡和美国(硅谷)可用,且仅支持解压ZIP格式的文件。

    如果仍不能满足您解压大文件的需求,请联系我们