node.js - AWS 文件加载适用于本地主机,但不适用于 EC2(节点、快递、反应)。获取 403 禁止
问题描述
我在节点上有应用程序。用于向 AWS 发送文件的 API 端点包含此部分
const multer = require('multer');
const aws = require('aws-sdk');
const multerS3 = require('multer-s3');
aws.config.update({
secretAccessKey: require("../config/keys").aws.key,
accessKeyId: require("../config/keys").aws.id,
region: 'eu-central-1'
});
const s3 = new aws.S3();
const storage = multerS3({
s3: s3,
bucket: require("../config/keys").aws.bucket,
key: function (req, file, cb) {
cb(null, Date.now().toString());
}
});
const upload = multer({ storage: storage });
module.exports = upload;
我这样称呼它
const upload = require('../../middleware/multer-aws');
router.post("/add", upload.any('file'), (req, res) => {
...
当我在 localhost 上测试加载文件时,它运行良好,但是当我在 EC2 实例上执行相同操作时,我有403 Forbidden响应。
在我的代码中,我没有 403 代码,所以它肯定来自 AWS。
我不知道问题出在哪里以及如何解决。有任何想法吗?
解决方案
看起来一些 NACL 问题出站 HTTP 访问可能被 EC2 实例阻止,如果 AWS 访问密钥和密钥在本地实例中完美工作并将文件上传到 S3,它应该可以从 EC2 工作,请检查 NACL
推荐阅读
- python - 双向 RNN 单元未添加 Tensorflow
- c++ - 一个接受字符串和整数的可变参数函数,格式化后者并连接所有?
- java - Wildfly (12/14) Elytron - LDAP 安全性 - 缺少依赖项
- sql - 多行 cast + 除法公式不起作用
- javascript - 如何获取第一个值然后获取另一个订阅方法
- reactjs - 在 React 中呈现可选组件列表
- php - 如何通过配置定义数据的路由来使 auth() 的不同页面注册页面
- java - 公历日期至今
- java - 春季LDAP | 登录并获取会员
- javascript - 如何从 woocommerce 订单的按钮值创建链接