最佳实践

有奖征文|投稿上云技术实践,赢取价值5000元大奖> HOT
文档中心 > 云函数 > 最佳实践 > 对象存储 COS > SCF + COS 实现文件自动解压缩

操作场景

本文介绍如何使用腾讯云云函数 SCF 实现对象存储 COS 中的文件自动解压缩。其中 COS 用于存储上传后需要解压的 .zip 文件及解压后的文件,SCF 实现对 .zip 文件上传至 COS 后的自动解压缩。

操作步骤

创建存储桶

  1. 登录 对象存储控制台,选择左侧导航栏中的存储桶列表
  2. 在“存储桶列表”页面,单击创建存储桶
  3. 在弹出的“创建存储桶”窗口中,参考以下信息进行创建。如下图所示:

    主要参数信息如下,其余参数请保持默认设置:
    • 名称:自定义 Bucket 名称,本文以 mubucket 为例。
    • 所属地域:选择“广州”。
    • 访问权限:选择“私有读写”。
  4. 单击确定即可创建 Bucket。

配置解压函数

  1. 在 Bucket 管理页面,选择左侧的函数计算。如下图所示:
  2. 单击 “zip 文件解压函数”中的添加函数。在弹出的“创建zip文件解压函数”窗口中配置如下信息。如下图所示:
    • 函数名称:将自动在对应地域下创建函数,函数名称作为函数的唯一标识名称,创建后不可修改。您可以在 云函数控制台 上查看该函数。
    • 事件类型:事件是指触发云函数的操作。以上传操作为例,上传的方式可能是调用 PUT Object 接口或 POST Object 接口,当选择事件为Put 方法创建时,只有通过 PUT Object 接口上传的压缩包会触发解压缩。
      注意:

      如果您的文件是通过简单上传、分块上传或跨地域复制等渠道上传到存储桶中,建议选择全部创建事件。

    • 触发条件:指压缩包上传到指定路径时会触发云函数。如果选择指定前缀,则仅当压缩包上传到指定前缀路径下时才会触发云函数。如果选择整个存储桶,则压缩包上传到存储桶任意位置均会触发。
      注意:

      如果配置的目标文件前缀与触发条件存在包含关系,可能导致循环触发,请尽量避免这种情况。例如目标前缀为 prefix,触发条件为 pre,当上传一个 pref 的压缩包时,将触发循环解压。

    • 解压格式:指当前可支持的压缩格式,目前仅支持 ZIP 格式压缩包解压。
    • 目标存储桶:是压缩包解压缩后,文件存储的存储桶。
    • 目标文件前缀:是压缩包解压缩后,文件存储的具体路径。如果不设置则默认为存储桶根目录。
    • SCF授权:解压缩需要授权云函数从您的存储桶中读取压缩包,并将解压缩后的文件上传到您指定的位置。因此需要添加此授权。
  3. 添加配置后,选择确认,即可看到函数已添加完成。
    选择查看日志,可查看解压缩的历史运行情况。当解压出现报错时,您可以通过选择查看日志,快速跳转到云函数控制台查看日志错误详情。如果需要删除不使用的文件解压缩规则,可以选择删除并删除相关配置。

测试函数功能

  1. 在 Bucket 管理页面,选择左侧的文件列表
  2. 在文件列表页面,单击上传文件,选择任意一个 .zip 压缩文件上传。如下图所示:
  3. 刷新当前存储桶,检查是否生成解压后的文件。
  4. 切换至函数计算查看日志或进入 云函数控制台 查看执行结果,在日志查询中可以看到打印出来的日志信息。
目录