当前位置:首页 > Web开发 > 正文

开发人员往往需要耗费不少精力去学习和尝试

2024-03-31 Web开发

简介:这是一个包罗了函数计算每种 Runtime 结合 HTTP Trigger 实现文件上传和文件下载的示例集。我们知道差别语言在措置惩罚惩罚 HTTP 协议上传下载时都有很多中要领和社区库,出格是结合函数计算的场景,开发人员往往需要耗费不少精力去学习和测验考试。本示例集编撰的目的就是节省开发者甄另外精力和时间,为每种语言供给一种有效且切合社区最佳实践的要领,可以拿来即用。

这是一个包罗了函数计算每种 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: :8000/2016-08-15/proxy/file-transfer/nodejs methods: [ 'GET', 'POST' ] authType: ANONYMOUS HttpTrigger httpTrigger of file-transfer/python was registered url: :8000/2016-08-15/proxy/file-transfer/python methods: [ 'GET', 'POST' ] authType: ANONYMOUS HttpTrigger httpTrigger of file-transfer/java was registered url: :8000/2016-08-15/proxy/file-transfer/java methods: [ 'GET', 'POST' ] authType: ANONYMOUS HttpTrigger httpTrigger of file-transfer/php was registered url: :8000/2016-08-15/proxy/file-transfer/php methods: [ 'GET', 'POST' ] authType: ANONYMOUS function 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 文件在浏览器中会被而不是直接衬着。

招聘

TL;DR

阿里云 - 云原生应用平台 - 根本软件中台团队(原容器平台根本软件团队)诚邀 Kubernetes/容器/ Serverless/应用交付技术范围专家( P6-P8 )加盟。

事情年限:建议 P6-7 三年起,P8 五年起,具体看实际能力。
事情所在:

国内:北京,杭州,深圳;

海外:旧金山湾区、西雅图

简历立刻答复,2~3 周出功效。节后入职。

事情内容

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30242.html