【发布时间】:2020-09-11 05:41:32
【问题描述】:
我在 Node 上有应用程序。用于向 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。
我不知道问题出在哪里以及如何解决。有什么想法吗?
【问题讨论】:
-
您好,您是否验证了代码库的文件和目录的权限?另外403从哪里返回?您的应用程序还是 AWS CLI?
-
我没有更改任何代码。刚刚在 EC2 上提取了相同的代码。基本上应用程序运行良好,但这部分没有。我不知道 403 是从哪里来的。正如我从 multer 部分了解的那样,当它尝试在服务器上上传文件时。在我的应用程序中,我没有 403 代码。
-
您能否验证应用程序中正在检索密钥和密钥?
-
我做了日志,看看是不是正确
标签: node.js amazon-web-services amazon-s3 amazon-ec2 multer