使用函数计算打包下载 OSS 文件
简介:打包下载 OSS 上存储的多个文件是一个常见的需求,例如将 OSS 上的一个目录打包下载。这样可以节省网络传输的数据,达到减少费用和下载时间的效果。使用函数计算可以很方便地实现这个需求。
需求
打包下载 OSS 上存储的多个文件,例如将 OSS 上的一个目录打包下载。这样可以节省网络传输的数据,达到减少费用和下载时间的效果。
方案
使用函数计算先把多个文件压缩成一个 zip,存储到 OSS 上面,返回 zip 文件的地址,客户端下载此文件。一般的客户端都支持跟随 HTTP 302 跳转地址,所以在完成压缩后,返回一个 302 的地址,客户端再跟随这个地址下载压缩后的文件包。
函数代码下载: zip-oss-code.zip。
实现细节
- 函数运行环境的磁盘空间是有限的,采用流式下载和上传的方式,只在内存中缓存少量的数据;
- 为了加快速度,一边生成 zip 文件时一边上传到 OSS;
- 上传 zip 文件到 OSS 时,利用 OSS 分片上传的特性,多线程并发上传。
实验
实验数据
实验步骤
- 在 OSS 上准备要打包的文件
- 把文件放在 OSS 上面一个目录下面
- 部署函数
- 使用
fun deploy
部署函数
- 使用
- 触发函数(通过 HTTP trigger 地址)
- 使用 curl 命令直接调用函数
cat <<EOF > event.json
{
"region": "cn-shanghai",
"bucket": "fc-test-tianlong-wu",
"source-dir": "files/"
}
EOF
curl -v -L -o /tmp/my.zip -d @./event.json https://123456789.cn-beijing.fc.aliyuncs.com/2016-08-15/proxy/zip-service/zip-oss/
打开 /tmp/my.zip
,就是 files/
目录下所有文件的压缩包。
函数计算是一个按量付费的计算服务,每月都有大量的免费额度可以使用,欢迎免费试用。
招聘
TL;DR
阿里云 - 云原生应用平台 - 基础软件中台团队(原容器平台基础软件团队)诚邀 Kubernetes/容器/ Serverless/应用交付技术领域专家( P6-P8 )加盟。
工作年限:建议 P6-7 三年起,P8 五年起,具体看实际能力。
工作地点:
- 国内:北京,杭州,深圳;
- 海外:旧金山湾区、西雅图
简历立刻回复,2~3 周出结果。节后入职。
工作内容
基础产品事业部是阿里云智能事业群的核心研发部门,负责计算、存储、网络、安全、中间件、系统软件等研发。而云原生应用平台基础软件终态团队致力于打造稳定、标准、先进的云原生应用系统平台,推动行业面向云原生技术升级与革命。
在这里,既有 CNCF TOC 和 SIG 联***,也有 etcd 创始人、K8s Operator 创始人与 Kubernetes 核心维护成员组成的、国内最顶尖的 Kubernetes 技术团队。
在这里,你将同来自全球的云原生技术领域专家们(如 Helm 项目的创始人、Istio 项目的创始人)密切合作,在独一无二的场景与规模中从事 Kubernetes、Service Mesh、Serverless、Open Application Model ( OAM )等云计算生态核心技术的研发与落地工作,在业界标杆级的平台上,既赋能阿里巴巴全球经济体,更服务全世界的开发者用户。
- 以 Kubernetes 为核心,推动并打造下一代 "以应用为中心" 的基础技术体系;在阿里经济体场景中,研发和落地“以应用为中心”的基础设施架构和基于 Open Application Model ( OAM )的下一代 NoOps 体系,让 Kubernetes 与云原生技术栈发挥出真正的价值和能量;
- 研发多环境复杂应用交付核心技术;结合阿里与生态中的核心业务场景,打造多环境复杂应用交付的业界标准与核心依赖(对标 Google Cloud Anthos 和 Microsoft Azure Arc );
- 云原生应用平台核心产品及后端架构设计与开发工作;在生态核心技术与前沿架构的加持下,在世界级云厂商的平台场景中,用技术打造持续的云产品生命力与竞争力;
- 持续推动阿里经济体应用平台架构演进,包括 Serverless 基础设施、标准云原生标准 PaaS 构建、新一代应用交付体系构建等核心技术工作。
技术要求:Go/Rust/Java/C++,Linux,分布式系统
简历提交
lei.zhang AT alibaba-inc.com
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”