本文介绍如何使用函数计算将对象存储OSS上多个文件(Object)打包下载到本地。
前提条件
- 已开通函数计算。
您可以在函数计算产品详情页开通函数计算。
- 已授权函数计算访问OSS。
具体步骤,请参见授予函数计算访问其他云服务的权限。
- 已在某个Bucket的指定目录下上传多个文件。本教程以在华东1(杭州)地域的examplebucket下的dir目录中上传多个文件为例。具体步骤,请参见简单上传。
使用原理
当您从OSS中批量下载Object时可能会遇到批量下载不方便、小文件较多时下载缓慢等问题。通过调用函数计算,可以将OSS上的Object先打包,然后将压缩包下载到本地后再解压,实现快速下载批量文件的目的。使用函数计算打包下载OSS文件的流程如下图所示。

- 用户调用函数,并指定存储空间及待压缩的文件。
- 函数计算从OSS中获取指定文件,并生成一个随机名称的ZIP压缩包。
- 函数计算将压缩包上传至OSS。
- 函数计算将ZIP包的下载地址返回给用户。
- 用户使用返回的下载地址从OSS中下载文件。
使用说明
- 函数运行环境的磁盘空间是有限的,所以采用流式下载和上传的方式,只在内存中缓存少量的数据。
- 为了加快速度,函数计算在生成ZIP文件的同时将文件上传到OSS。
- 上传ZIP文件到OSS时,利用OSS分片上传的特性,多线程并发上传。
- 使用函数计算压缩文件时,最大处理时间是10分钟(实验数据为57个文件,总大小1.06 GB,处理时间为63s)。
操作步骤
以下以通过函数计算将华东1(杭州)地域examplebucket中dir/目录下的多个文件打包下载到本地为例。