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

简介: 需求 打包下载OSS上存储的多个文件 方案 使用函数计算先把多个文件压缩成一个zip,存储到OSS上面,返回zip文件的地址,客户端下载此文件。 函数代码下载zip-oss.zip 实现细节 函数运行环境的磁盘空间是有限的,采用流式下载和上传的方式,只在内存中缓存少量的数据。

需求

打包下载OSS上存储的多个文件,例如将OSS上的一个目录打包下载。这样可以节省网络传输的数据,达到减少费用和下载时间的效果。

方案

使用函数计算先把多个文件压缩成一个zip,存储到OSS上面,返回zip文件的地址,客户端下载此文件。一般的客户端都支持跟随HTTP 302跳转地址,所以在完成压缩后,返回一个302的地址,客户端再跟随这个地址下载压缩后的文件包。

zip_oss_high

实现细节

  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. 部署函数
    • 使用fun deploy部署函数
  3. 触发函数(通过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/目录下所有文件的压缩包。

函数计算是一个按量付费的计算服务,每月都有大量的免费额度可以使用,欢迎免费试用

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
1535 0
|
消息中间件 JavaScript 中间件
函数计算产品使用问题之WebIDE编写的Node.js代码是否会自动进行打包部署
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
395 0
|
消息中间件 JavaScript 中间件
函数计算产品使用问题否会自动进行打包部署
本文解答了五个关于阿里云函数计算的常见问题。包括:WebIDE编写的Node.js代码如何自动打包部署;如何为fc-stable-diffusion-plus开启API功能;如何在代码中主动结束实例并重启新实例处理触发器;如何在Koa中读取invoke事件消息;以及解决异步事件未触发的问题。提供了详细的解决方案和注意事项,帮助用户更好地理解和使用函数计算服务。[查看详情](https://developer.aliyun.com/ask/649609)
279 1
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
存储 前端开发 Serverless
Serverless 魔法之旅:如何用 Funcraft、OSS 和 ROS 打造超级CI/CD流水线!
【8月更文挑战第8天】在现代软件开发中,CI/CD对于提升效率与代码质量至关重要。本文介绍如何运用阿里云的Serverless服务——Funcraft、OSS及ROS构建完整的CI/CD流程。首先配置Funcraft实现代码自动化构建与部署;接着利用OSS管理静态文件,确保网站内容正确加载;最后借助ROS自动化资源创建与管理,实现代码自动部署。通过整合这些服务,不仅加速了开发进程,还保证了代码质量和部署一致性,充分发挥Serverless架构的优势。
500 5
|
监控 Java Serverless
函数计算产品使用问题之对于OSS打包的zip的保存目录,该如何操作
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
331 6
|
Java Serverless 数据库连接
函数计算操作报错合集之调用打包的OSS函数时发生报错,该怎么办
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
400 2
|
NoSQL Serverless API
Serverless 架构实现弹幕场景问题之API Gateway和OSS域名未绑定成功的问题如何解决
Serverless 架构实现弹幕场景问题之API Gateway和OSS域名未绑定成功的问题如何解决
251 0
|
8月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
828 30

相关产品

  • 函数计算