阅读811 返回首页    go 阿里云 go 技术社区[云栖]


使用函数计算来打包下载OSS文件

需求

打包下载OSS上存储的多个文件

方案

使用函数计算先把多个文件压缩成一个zip,存储到OSS上面,返回zip文件的地址,客户端下载此文件。

zip-oss-high

函数代码下载zip-oss.zip

实现细节

  1. 函数运行环境的磁盘空间是有限的,采用流式下载和上传的方式,只在内存中缓存少量的数据。
  2. 为了加快速度,一边生成zip文件时一边上传到OSS
  3. 上传zip文件到OSS时,利用OSS分片上传的特性,多线程并发上传

zip-oss-low

实验

实验数据

# 文件数 压缩前总大小 压缩后总大小 执行时间
1 7 1.2MB 1.16MB 0.4s
2 57 1.06GB 1.06GB 63s

实验步骤

  1. 在OSS上准备要打包的文件
    • 把文件放在OSS上面一个目录下面
  2. 触发函数(通过API网关)
    • 使用curl命令直接调用函数
cat <<EOF > event.json
{
  "region": "cn-shanghai",
  "bucket": "fc-test-tianlong-wu",
  "source-dir": "files/"
}
EOF

curl -v -L -o /tmp/my.zip -H "Content-Type: application/json" -d @./event.json \
{apigateway-domain}-cn-shanghai.alicloudapi.com/zip?redirect=true

最后更新:2017-07-28 23:35:31

  上一篇:go  鑫众6603棋牌源码架设下载含最新版游戏大厅+手机版网站+手机端大厅+代理系统+超强后台
  下一篇:go  一分钟看懂测力传感器暗转使用技巧和注意事项