轻松实现函数计算文件上传下载
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这是一个包含了函数计算每种 Runtime 结合 HTTP Trigger 实现文件上传和文件下载的示例集。每个示例包括:一个公共 HTML 页面,该页面有一个文件选择框和上传按钮,会列出已经上传的文
千家信息网最后更新 2026年10月31日轻松实现函数计算文件上传下载
这是一个包含了函数计算每种 Runtime 结合 HTTP Trigger 实现文件上传和文件下载的示例集。每个示例包括:
- 一个公共 HTML 页面,该页面有一个文件选择框和上传按钮,会列出已经上传的文件,点击某个已上传的文件可以把文件下载下来;
- 支持文件上传、下载和列举的函数。
我们知道不同语言在处理 HTTP 协议上传下载时都有很多中方法和社区库,特别是结合函数计算的场景,开发人员往往需要耗费不少精力去学习和尝试。本示例集编撰的目的就是节省开发者甄别的精力和时间,为每种语言提供一种有效且符合社区最佳实践的方法,可以拿来即用。

当前已支持的 Runtime 包括:
- nodejs
- python
- php
- java
计划支持的 Runtime 包括:
- dotnetcore
不打算支持的 Runtime 包括:
- custom
使用限制
由于函数计算对于 HTTP 的 Request 和 Response 的 Body 大小限制均为 6M,所以该示例集只适用于借助函数计算上传和下载文件小于 6M 的场景。对于大于 6M 的情况,可以考虑如下方法:
- 分片上传,把文件切分成小块,上传以后再拼接起来;
- 借助于 OSS,将文件先上传 OSS,函数从 OSS 上下载文件,处理完以后回传 OSS;
- 借助于 NAS,将大文件放在 NAS 网盘上,函数可以像读写普通文件系统一样访问 NAS 网盘的文件。
快速开始
安装依赖
在开始之前请确保开发环境已经安装了如下工具:
- docker
- funcraft
- git
- make
构建并启动函数
克隆代码:
git clone https://github.com/vangie/fc-file-transfer本地启动函数:
$ make start...HttpTrigger httpTrigger of file-transfer/nodejs was registered url: http://localhost:8000/2016-08-15/proxy/file-transfer/nodejs methods: [ 'GET', 'POST' ] authType: ANONYMOUSHttpTrigger httpTrigger of file-transfer/python was registered url: http://localhost:8000/2016-08-15/proxy/file-transfer/python methods: [ 'GET', 'POST' ] authType: ANONYMOUSHttpTrigger httpTrigger of file-transfer/java was registered url: http://localhost:8000/2016-08-15/proxy/file-transfer/java methods: [ 'GET', 'POST' ] authType: ANONYMOUSHttpTrigger httpTrigger of file-transfer/php was registered url: http://localhost:8000/2016-08-15/proxy/file-transfer/php methods: [ 'GET', 'POST' ] authType: ANONYMOUSfunction compute app listening on port 8000!make start 命令会调用 Makefile 文件中的指令,通过 fun local 在本地的 8000 端口开放 HTTP 服务,控制台会打印出每个 HTTP Trigger 的 URL 、支持的 HTTP 方法,以及认证方式。
效果演示
上面四个 URL 地址随便选一个在浏览器中打开示例页面。
接口说明
所有示例都实现了下述四个 HTTP 接口:
GET /返回文件上传 Form 的 HTML 页面GET /list以 JSON 数组形式返回文件列表POST /upload以multipart/form-data格式上传文件fileContent作为文件字段fileName作为文件名字段
GET /download?filename=xxx以application/octet-stream格式返回文件内容。
此外为了能正确的计算相对路径,在访问根路径时如果不是以/结尾,都会触发一个 301 跳转,在 URL 末尾加上一个/。
不同语言的示例代码
- nodejs
- python
- php
- java
已知问题
- 文件大小限制
- fun local 实现存在已知问题,上传过大的文件会自动退出,未来的版本会修复。
- 部署到线上需要绑定自定义域名才能使用,否则 HTML 文件在浏览器中会被强制下载而不是直接渲染。
"阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。"
文件
函数
示例
支持
方法
页面
开发
技术
语言
限制
不同
代码
场景
大小
字段
开发者
接口
文件下载
格式
浏览器
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
伟宏互联网科技
上海睿民互联网科技有限公司
互联网科技工作委员会毛军
互联网科技保险
亿账通互联网科技
丰台科技园 互联网公司
互联网大会黑科技排名
青岛科技大学互联网大赛研究生
搜狐科技互联网
迪庆互联网科技招生
洛阳共同富裕互联网科技有限公司
江苏互联网科技小贷
扫呗互联网科技有限公司
上海乐五互联网科技有限公司
互联网界的黑科技
陕西九四连强互联网科技有限公司
互联网公司属于科技吗
互联网科技职业技能培训学校
唐山双旺合互联网科技产业园
数字互联网科技有限公司
互联网金融科技
科技互联网政务服务
北京互联网科技
为想互联网科技
科技互联网公司logo
恒生科技互联网指数分析
中国互联网公司排名锤子科技
深圳市罗太互联网科技有限公司
云南省自由互联网科技有限公司
互联网科技自媒体灵感