腾讯云云函数实战教程 - SCF + COS 实现文件自动解压缩
文档简介:
操作场景:
本文介绍如何使用腾讯云云函数 SCF 实现对象存储 COS 中的文件自动解压缩。其中 COS 用于存储上传后需要解压的 .zip 文件及解压后的文件,SCF 实现对 .zip 文件上传至 COS 后的自动解压缩。
操作场景
本文介绍如何使用腾讯云云函数 SCF 实现对象存储 COS 中的文件自动解压缩。其中 COS 用于存储上传后需要解压的 .zip 文件及解压后的文件,SCF 实现对 .zip 文件上传至 COS 后的自动解压缩。
操作步骤
创建存储桶
1. 登录 对象存储控制台。
2. 在左侧导航中,单击存储桶列表,进入存储桶列表页面。
3. 单击创建存储桶。
4. 在弹出的创建存储桶对话框中,配置如下信息:
4.1 基本信息

主要参数信息如下,其余参数请保持默认设置:
名称:自定义 Bucket 名称,本文以 mybucket 为例。
所属地域:选择“广州”。
访问权限:选择“私有读写”。
4.2 高级可选配置
该设置项为可选,您可按需进行设置。参数详情请参见 创建存储桶。
4.3 确认配置
对存储桶的配置信息进行确认。如需修改,单击上一步即可。
5. 确认信息无误后,单击创建,即可创建存储桶。在存储桶列表界面中,您可以看到刚才已创建的存储桶。
配置解压函数
1. 在存储桶详情页面,选择左侧导航中的函数计算,单击 ZIP 文件解压函数,进入 ZIP 文件解压函数配置页面。
2. 单击添加函数。在弹出的窗口中配置如下信息。如下图所示:

函数名称:将自动在对应地域下创建函数,函数名称作为函数的唯一标识名称,创建后不可修改。您可以在 云函数控制台 上查看该函数。
事件类型:事件是指触发云函数的操作。以上传操作为例,上传的方式可能是调用 PUT Object 接口或 POST Object 接口,当选择事件为Put 方法创建时,只有通过 PUT Object 接口上传的压缩包会触发解压缩。
注意
如果您的文件是通过简单上传、分块上传或跨地域复制等渠道上传到存储桶中,建议选择全部创建事件。
触发条件:指压缩包上传到指定路径时会触发云函数。如果选择指定前缀,则仅当压缩包上传到指定前缀路径下时才会触发云函数。如果选择整个存储桶,则压缩包上传到存储桶任意位置均会触发。
注意
如果配置的目标文件前缀与触发条件存在包含关系,可能导致循环触发,请尽量避免这种情况。例如目标前缀为 prefix,触发条件为 pre,当上传一个 pref 的压缩包时,将触发循环解压。
SCF授权:解压缩需要授权云函数从您的存储桶中读取压缩包,并将解压缩后的文件上传到您指定的位置。因此需要添加此授权。
3. 单击下一步,在弹出的窗口中配置如下信息:
解压格式:指当前可支持的压缩格式,目前仅支持 ZIP 格式压缩包解压。
投递存储桶:选择解压后的文件所存放的存储桶。
投递的路径:将匹配到的文件解压到此目标目录下。为防止循环触发产生不必要的费用,建议您设置不同于前缀的目标目录。
额外的前缀:是压缩包解压缩后,文件存储的具体路径。如果不设置则默认为存储桶根目录。详情可参见 通过控制台配置 ZIP 文件自动解压。
禁止递归触发:选择开启,则解压后的文件中如果包含 ZIP 包,不允许其触发解压;选择关闭,则解压后的文件中如果包含 ZIP 包,允许其触发解压。
回调地址:根据实际需求,输入回调地址。
4. 确认配置无误后,单击确认,即可看到函数已添加完成。
对新创建的函数进行查看日志操作,可查看解压缩的历史运行情况。当解压出现报错时,您可以通过选择查看日志,快速跳转到云函数控制台查看日志错误详情。如果需要删除不使用的文件解压缩规则,可以选择删除并删除相关配置。
测试函数功能
1. 在 Bucket 管理页面,选择左侧的文件列表。
2. 在文件列表页面,单击上传文件,选择任意一个 .zip 压缩文件上传。如下图所示:


3. 刷新当前存储桶,检查是否生成解压后的文件。
4. 切换至函数计算查看日志或进入 Serverless 控制台 查看执行结果,在日志查询中可以看到打印出来的日志信息。