注:当前项目为 Serverless Devs 应用,由于应用中会存在需要初始化才可运行的变量(例如应用部署地区、服务名、函数名等等),所以不推荐直接 Clone 本仓库到本地进行部署或直接复制 s.yaml 使用,强烈推荐通过
s init
的方法或应用中心进行初始化,详情可参考部署 & 体验 。
使用函数计算zip打包下载OSS文件
使用该项目,您需要有开通以下服务:
服务 | 备注 |
---|---|
函数计算 FC | 需要创建函数处理核心业务逻辑 |
对象存储 OSS | 需要拉取存储OSS文件 |
推荐您拥有以下的产品权限 / 策略:
服务/业务 | 权限 | 备注 |
---|---|---|
函数计算 | AliyunFCFullAccess | 需要创建函数处理核心业务逻辑 |
对象存储 | AliyunOSSFullAccess | 需要拉取存储OSS文件 |
您还需要注意:
OSS创建的bucket 和 应用函数需在同一个 region
免责声明:
本项目打包使用标准的 python zipfile lib 处理,因需要打包的文件大小、数量不同函数执行时间不同,需根据情况具体测试打包时间以及所产生的费用。
s init start-zip-oss -d start-zip-oss
cd start-zip-oss && s deploy - y
打包下载 OSS 上存储的多个文件,例如将OSS上的一个目录打包下载。这样可以节省网络传输的数据,达到减少费用和下载时间的效果。使用 Serverless Devs开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。
应用部署成功后, 会输出 HTTP trigger 对应的公网访问地址
在OSS上准备要打包的文件, OSS 和 应用函数在同一个 region
files
目录触发函数(通过HTTP trigger 对应的公网访问地址)
cat <<EOF > event.json
{
"bucket": "fc-test-bucket",
"source-dir": "files/"
}
EOF
curl -v -L -o /tmp/my.zip -d @./event.json https://zip-oss-func-zip-oss-xxxx.cn-shanghai.fcapp.run
打开/tmp/my.zip
,就是files/
目录下所有文件的压缩包。
注意, 如果您有需求将上面的示例中的匿名非鉴权的 HTTP 函数改成需要鉴权的 HTTP 函数,可以采用相关的 sdk 去调用
使用函数计算先把多个文件压缩成一个 zip,存储到 OSS上面,返回 zip 文件的地址,客户端下载此文件。一般的客户端都支持跟随 HTTP 302 跳转地址,所以在完成压缩后,返回一个302的地址,客户端再跟随这个地址下载压缩后的文件包。
# | 文件数 | 压缩前总大小 | 压缩后总大小 | 执行时间 |
---|---|---|---|---|
1 | 7 | 1.2MB | 1.16MB | 0.4s |
2 | 57 | 1.06GB | 0.91GB | 63s |
通过 Serverless Devs 开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。
您如果有关于错误的反馈或者未来的期待,您可以在 Serverless Devs repo Issues 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:
微信公众号:serverless
|
微信小助手:xiaojiangwh
|
钉钉交流群:33947367
|
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。