最佳实践

文档中心 > 云函数 > 最佳实践 > COS 相关实践 > 使用 SCF 实现 COS 文件自动解压缩

使用 SCF 实现 COS 文件自动解压缩

最近更新时间:2020-08-27 19:41:12

操作场景

本文介绍如何使用腾讯云云函数 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. 切换至【函数计算】查看日志或进入 云函数控制台 查看执行结果,在运行日志中可以看到打印出来的日志信息。
目录