在 AWS Lambda 中,处理 Multipart/form-data 请求体是一项很棘手的任务。通常,该请求用于从前端应用程序上传文件,通常使用表单。AWS API 网关通过将请求转换为 Lambda 事件来支持表单数据。在 Lambda 中处理表单数据之前,将二进制负载存储在 S3 存储桶中。
但是,手动处理 Multipart/form-data 请求体涉及很多工作。为了简化这个过程,我们可以使用 npm 包 lambda-multipart。本教程将向您展示如何使用这个 npm 包来简化 Lambda 中处理 Multipart/form-data 请求体的过程。
安装 lambda-multipart
首先,您必须安装 lambda-multipart。要安装,请在项目根目录下运行以下命令:
npm install lambda-multipart
基本用法
安装完 lambda-multipart 后,需要更新 Lambda 的代码。在 Lambda 的 Node.js 代码中,您必须导入 lambda-multipart 并使用其 parse 函数解析请求体。
以下是一个处理 Multipart/form-data 请求的 Lambda 函数示例:
-- -------------------- ---- ------- ----- --------- - ---------------------------- --------------- - ----- ------- -------- -- - ----- ------ - - ----------- ---- -------- - --------------- ------------------ -- ----- ---------------- -------- --------- -- -- ----- ----- - ----- ----------------------- --- ------ --- -- ------ - ----- ---- - ----------- ------------------ - ------ ------- --
该示例代码导入 lambda-multipart 并使用其 parse 函数。在处理成功的情况下,parse 函数返回一个名为 parts 的对象。parts 对象将包含上传文件的信息,其中文件名作为键,文件信息作为值。
配置 Lambda
在 Lambda 控制台中,确保您已启用了一些触发器,例如 API Gateway。在 "配置" 选项卡中,将运行时更改为 Node.js 14.x。然后,在 "上传" 选项卡中将.zip文件上传到 Lambda。
示例代码
您可以使用以下示例代码来测试 Lambda 函数:
<form method="POST" enctype="multipart/form-data" action="https://<your-lambda-api>.execute-api.<region>.amazonaws.com/<stage>/<function-name>"> <input type="file" name="file"> <button type="submit">Upload</button> </form>
在使用示例代码时,请注意必须替换API网关资源代理名称、区域和 Lambda 函数名称。
完整示例
-- -------------------- ---- ------- ----- --------- - ---------------------------- --------------- - ----- ------- -------- -- - ----- ------ - - ----------- ---- -------- - --------------- ------------------ -- ----- ---------------- -------- --------- -- -- ----- ----- - ----- ----------------------- --- ------ --- -- ------ - ----- ---- - ----------- ----- ------ - ------------ ----- --- - -------------- ----- ------ - ------------------------- ---------- ----- -- - --- --------- ----- -------------- ------- ------- ---- ---- ----- ------ ------------- ----------------- -------- -- --- ------------------------ - ------ ------- --
总结
使用 lambda-multipart 可以让您更轻松地在 AWS Lambda 中处理 Multipart/form-data 请求体。在此教程中,我们介绍了如何安装 lambda-multipart,并提供了一个示例代码来演示如何使用它。
让您的 Lambda 函数更加简单和可维护可让您专注于您的业务逻辑,从而快速交付一个功能明显的 Lambda 函数。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600576bd81e8991b448eab13