node.js - 如何将自定义 AWS 开发工具包与 nodejs 一起使用?
问题描述
我想制作一个使用 AWS 开发工具包的 nodejs 应用程序。但是,它只需要使用 S3,并且我希望应用程序具有较小的文件大小。
AWS 有一个自定义 sdk 构建器,它应该制作一个仅包含所需软件包的自定义 SDK。不幸的是,即使我选择了所有服务,这也不起作用。如何制作适用于节点的自定义 SDK?
我试过使用npm install aws-sdk
, 并且有效,但它是 40MB。我也尝试在服务构建器中选择所有服务(只有 3MB),但这不起作用。
它总是在这一行给出错误:
var aws = require("./aws-sdk-2.462.0.min.js");
ReferenceError: AWS is not defined
at Object.<anonymous> (/home/cwaugh/workspaces/meta-lambda/aws-sdk-2.462.0.min.js:7:30180)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/cwaugh/workspaces/meta-lambda/handler.js:5:11)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
解决方案
现在可以使用适用于 JavaScript v3 的 AWS 开发工具包
您只能安装所需的软件包,如下所示:
npm install @aws-sdk/client-s3
将它们用作:
const {S3} = require('@aws-sdk/client-s3');
推荐阅读
- php - 如何在 laravel/ 中选择选项枚举配置?
- reactjs - 你无法改变
=> 自定义挂钩 - css - 使用 CSS 网格创建最多 4 行、任意列数的下拉框
- c++ - 一个 DebugBreak 版本,可以在不使应用程序崩溃的情况下中断调试器
- javascript - CKEditor 显示 &undefined; 在将某些字符添加到 config.entities_adddtional 之后
- google-chrome-extension - Chrome 扩展程序错误“当前页面尚未调用扩展程序”
- c# - (407) 需要代理身份验证 - 基本身份验证
- laravel - Laravel Nova 在帖子页面上通过模态添加仪器
- javascript - 将键和值转换为字符串 javascript
- django - S3 Lambda 触发器不会为每个文件上传触发