Skip to content

使用函数计算自动解压上传到OSS指定前缀目录的zip文件

License

Notifications You must be signed in to change notification settings

devsapp/start-unzip-oss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

注:当前项目为 Serverless Devs 应用,由于应用中会存在需要初始化才可运行的变量(例如应用部署地区、函数名等等),所以不推荐直接 Clone 本仓库到本地进行部署或直接复制 s.yaml 使用,强烈推荐通过 s init ${模版名称} 的方法或应用中心进行初始化,详情可参考部署 & 体验

start-unzip-oss-v3 帮助文档

本案例是将解压zip文件工具 unzip,快速创建并部署到阿里云函数计算 FC。

前期准备

使用该项目,您需要有开通以下服务并拥有对应权限:

服务/业务 权限 相关文档
函数计算 AliyunFCFullAccess 帮助文档 计费文档
对象存储 AliyunOSSFullAccess 帮助文档 计费文档

部署 & 体验

案例介绍

本案例是将zip文件进行 unzip 解压,快速创建并部署到阿里云函数计算 FC。

匹配解压规则的ZIP文件在上传到OSS后,会自动触发函数计算进行解压。文件解压完成后,会存储至OSS的指定目录中。

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

  • 归档或冷归档类型的文件需先解冻再解压。

  • 建议 ZIP 包 + zip包里面最大单文件的大小之和不要超过 10 GB,否则解压失败。如果出现这个场景, 请参考:unzip-oss-with-nas

  • 默认设置的函数执行时长为6小时, 如果不满足需求, 自己直接调整函数的 timeout, 最大可到 24小时

使用流程

查看部署的案例

部署时, 选择的OSS存储桶名,以及前缀名,如:

部署完成后,在oss对象存储中找到相应的OSS存储桶名,向该存储桶上传zip文件,如:

在控制台就可以查看到调用日志,如:

参数说明

配置示例

二次开发

您可以通过云端控制台的开发功能进行二次开发。如果您之前是在本地创建的项目案例,也可以在本地项目目录start-unzip-oss-v3文件夹下,对项目进行二次开发。开发完成后,可以通过s deploy进行快速部署。

上面的示例, 解压保存回去的都还是本身触发函数的 OSS, 如果是保存到其他 OSS, 直接将 bucket.put_object(newKey + name, file_obj) 这样上传回 oss 的代码修改下即可, 比如:

auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
dst_bucket_name = "xxx-bucket"
dst_bucket = oss2.Bucket(auth, endpoint, dst_bucket_name)
dst_bucket.put_object(newKey +  name, file_obj)

注意事项

开发者社区

您如果有关于错误的反馈或者未来的期待,您可以在 Serverless Devs repo Issues 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:

微信公众号:serverless 钉钉交流群:33947367