赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 2.0
  4. 实践教程
  5. 使用函数计算实现OSS压缩文件的自动解压

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

  • 实践教程
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

您可以通过使用Serverless Devs和函数计算控制台完成函数的部署,当匹配解压规则的ZIP文件上传到OSS后,会触发函数自动解压。

注意事项

  • 建议使用UTF-8或GB 2312编码命名您的文件或文件夹,否则可能导致解压后的文件或文件夹名称出现乱码、解压过程中断等问题。

  • 向Bucket上传压缩文件时,请不要选择归档存储或冷归档存储类型,否则无法正常触发函数执行。

  • 压缩文件建议使用标准的ZIP命令行进行压缩,防止解压失败。

  • 向Bucket上传的压缩文件中,单个文件大小不要超过1 GB,否则可能导致解压失败。

  • 解压单个压缩包的最大时间为2小时,超过2小时未完成的任务会解压失败。

  • 默认设置的函数执行时长为2小时,您可以调整函数的执行超时时间来满足业务需求。

操作流程

image

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

前提条件

  • 开通函数计算服务

  • 开通OSS服务并创建存储空间

操作步骤

  1. 登录函数计算控制台,在左侧导航栏,单击应用。
  2. 在应用页面,单击创建应用。

  3. 在创建应用页面,选择创建应用的方式。

    本文以通过模板创建应用方式为例进行介绍。

  4. 在下方模板区域,选择热门应用页签,找到OSS上传zip文件自动解压卡片,光标放到该卡片,然后单击立即创建。

  5. 在创建应用页面,设置以下配置项,然后单击创建并部署。

    主要配置项说明如下,其余配置项选择默认值即可。

    配置项

    说明

    基本信息

    部署类型

    选择直接部署。

    角色名称

    默认为角色AliyunFCServerlessDevsRole。如果现有权限不足,单击+添加策略,在弹出的对话框选择要添加的策略,然后单击添加。

    高级配置

    地域

    选择应用部署的地域。

    服务名

    设置要创建的应用所属的服务名称。

    函数名

    设置要创建的应用所属的函数名称。

    RAM角色ARN

    选择OSS触发函数时所用的角色。请确保已为该角色配置AliyunOSSFullAccess和AliyunFCDefaultRolePolicy权限策略。

    OSS存储桶名

    选择已创建的Bucket。

    前缀

    设置文件前缀。默认为src。同一个Bucket下的不同触发器的文件前缀不能重复。

    解压目标目录

    设置文件解压后的目标存储目录。默认为dst。

    说明

    为了防止循环触发函数,请将此目录设置为不同于前缀的目标目录。

    是否保留压缩文件名为路径目录

    设置是否保留压缩文件名为路径的目录。取值说明如下:

    • true:保留压缩文件名为路径目录。例如,设置的解压目标目录为target,压缩文件名为source.zip,解压后文件路径为target/source/...。

    • false:直接解压到目标目录中。上述示例中,解压后文件路径为target/...。

    触发器RAM角色ARN

    默认为角色AliyunOSSEventNotificationRole,OSS会使用此角色发送事件通知调用函数。

  6. 测试应用。

    上传.zip文件至与您设置的前缀匹配的目录时,触发应用所属函数执行,自动将.zip文件解压并保存至您设置的解压目标目录。

    例如,您设置的前缀为source,解压目标目录为target。将.zip文件上传至source或source1时,均触发函数执行,并自动解压保存文件至target。

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

前提条件

  • 已开通函数计算服务。具体操作,请参见开通函数计算服务。

  • 已开通OSS服务并在OSS创建存储空间。具体操作,请参见开通OSS服务并创建存储空间。

  • 已安装并配置Serverless Devs。具体操作,请参见安装Serverless Devs和配置Serverless Devs。

操作步骤

  1. 执行以下命令,下载示例工程。

    git clone git@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. 执行以下命令,部署项目。

    sudo 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 trigge
    * 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/。

相关文档

  • 如果您仅需要解压上传到OSS的ZIP文件,可以直接在OSS配置ZIP文件自动解压,具体请参见ZIP包解压。

  • 如果您需要在一个Bucket内关联大于10个以上的触发器,可以选择创建EventBridge类别的OSS触发器,具体请参见配置EventBridge类别的OSS触发器。

  • 如果您需要使用函数计算实现打包下载OSS的文件,请参见使用函数计算实现打包下载OSS文件。

相关文章

低成本跨境文件传输 2025-04-16 14:22

本文介绍如何通过OSS加速域名,配合函数计算和云工作流,快速打造低成本、高效的跨境对象存储数据同步传输系统。

使用函数计算实现网站的文件处理 2025-04-16 14:22

本文介绍如何通过函数计算实现文件管理网站的功能,例如自动解压文件、自动打包压缩、自动处理图片分辨率等。 应用场景 某图片网站数据管理主要

使用函数计算搭建前端CICD系统 2025-04-16 14:22

本文介绍通过函数计算搭建前后端分离架构下的前端静态资源部署服务。 背景信息 企业一般使用GitLab托管前端代码,搭建Jenkins监听

智能家电利用函数计算获取天气信息 2025-04-16 14:22

本文介绍使用函数计算,结合阿里云IoT物联网平台,实现IoT设备获取天气信息的最佳实践。 应用场景

函数计算冷启动优化最佳实践 2025-04-16 14:22

本文介绍如何通过设置函数计算的预留模式实例优化按量模式实例的冷启动和函数性能。 什么是冷启动

异步任务最佳实践 2025-04-16 14:22

异步任务可以实时感知业务状态、控制执行函数,让您对一些异常情况进行更好的处理,例如报警通知、自动化重试等情况。本文介绍函数计算异步任务的最佳实践。 背景信息

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号