本文为您介绍如何通过函数服务(veFaaS)将对象存储(TOS)上传的 Zip 文件实时自动解压。
实际业务场景中,经常需要上传文件至 TOS 进行存储和使用。为了提高效率,业务方通常会将所有文件打包成 Zip 包进行上传。然而,实际使用时还是需要手动解压对应的压缩包,十分繁琐不便。通过函数服务,结合 TOS 触发器,可以帮助您实现 TOS 上传后实时自动解压文件,提高工作效率。
使用 vefaas-python38-tos-auto-unzip 代码模板创建函数,并配置代码信息。
登录 函数服务控制台。
在顶部导航栏,选择目标地域。
在函数列表页面,单击 创建函数。
在创建函数页面,主要参数按如下说明配置,其余参数请参见 创建事件函数 按需配置。
配置项 | 说明 |
---|---|
创建函数的方式 | 选择 创建「事件函数」。 |
基础配置 | |
名称 | 根据界面提示的命名规则,自定义函数名称。创建函数成功后名称不可修改。 |
函数代码 | |
运行时 | 选择 Python 3.8。 |
部署方式 | 选择 函数模板 > vefaas-python38-tos-auto-unzip。 |
单击 确定,完成函数的创建。
函数创建成功后,系统自动跳转到该函数详情页的 代码 页签。
在函数的 代码 页签,代码模板已提供自动解压业务代码,您只需配置以下信息。
配置项 | 说明 |
---|---|
ak | 输入前提条件中准备的 AK。 |
sk | 输入前提条件中准备的 SK。 |
endpoint | 输入内网的访问域名,使用 Endpoint(地域节点)。 |
region | 地域。 |
destination | TOS 上传的 Zip 文件解压后存放的路径。 |
单击 保存,保存已修改的代码。
将函数的当前代码和配置发布至线上。
在函数详情页面,单击右上角的 发布。
函数版本 使用 Latest,其余参数按需填写或保持默认值。
单击 确定, 函数进入发布中。函数发布成功后如下图所示。
为当前函数配置 TOS 触发器,设置触发函数的规则。
在函数详情页面,切换至 触发器 页签,单击 创建触发器。
按要求配置触发器信息。更多参数介绍请参见 创建 TOS 触发器。
配置项 | 说明 |
---|---|
触发器类型 | 选择 TOS 触发器。 |
触发器名称 | 根据界面提示规则自定义触发器名称。 |
TOS Bucket | 选择前提条件中准备的 TOS Bucket。 |
触发事件 | 本示例选择 tos:ObjectCreated:Put 和 tos:ObjectCreated:CompleteUpload。 注意 有大文件分片上传的情况下,需要同时选择 tos:ObjectCreated:Put 和 tos:ObjectCreated:CompleteUpload。若无分片上传的情况,可只选择 tos:ObjectCreated:Put,通过简单上传对象后触发。 |
过滤条件 | 通过设置过滤条件,可精确匹配需要监听的事件所包含的对象范围,有效降低触发频率,减少成本。本示例设置前缀 为 origin,即向/origin 路径下上传 Zip 文件将触发自动解压上传任务。 |
单击 确定,完成 TOS 触发器创建。
在当前函数的 触发器 页签下,选择刚才创建的 TOS 触发器,单击 Bucket 名称,跳转至对象存储控制台的对应 Bucket。
进入origin/
目录,单击 上传文件,从本地提交一个 Zip 文件。
进入uncompressed/
目录,可看到上传的文件成功被解压至uncompressed/origin
目录下。