gpt4 book ai didi

node.js - 使用nodejs和aws遇到403错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:08 24 4
gpt4 key购买 nike

我使用的相关软件包是 aws-sdkmulter-s3multer

我的上传设置如下:

aws.config.update({
secretAccessKey: "accessKey",
accessKeyId: "keyId",
region: "eu-west-2"
});

var s3 = new aws.S3();

const upload = multer({
storage: multerS3({
s3,
acl: "public-read",
bucket: "my-buckets-name",
metadata: function(req, file, cb) {
console.log("passed1"); // prints
cb(null, {
fieldName: "file.fieldname"
});
},
key: function(req, file, cb) {
console.log("passed2"); // prints
cb(null, Date.now().toString());
}
})
});

我的路线是这样的,

router.post(
"/single",
[auth, upload.single("image")],
async (req, res) => {
console.log("hereiam"); // never reached
res.json({
msg: "Server received media. Processing..."
});

if (mediaType === "image") {
try { /*...*/ } catch { /*...*/ }
} else { /*...*/ }

passed1passed2 都输出到控制台,我确信我的访问 key 和 key ID 是正确的。当我尝试上传图像时,抛出 403 错误。

我正在使用 React Native,并且我正在做

const aws = require("aws-sdk/dist/aws-sdk-react-native");

这根本没有给我任何反馈,程序只是继续运行,就好像我点击“上传”后什么也没发生一样。

然后我将nodejs导入更改为,

const aws = require("aws-sdk");

现在我被抛出 403。不知道我做错了什么。

<小时/>

编辑:

我的 S3 的权限:

img

最佳答案

您可以尝试这个解决方案吗?

const AWS = require('aws-sdk');
const s3Client = new AWS.S3();
let params = {
Bucket: <the bucket>,
Key: <the key>,
Body: <The file>
};
s3Client.upload(params, function(err, data) {
if (err) console.log(err);
else
<do something>
});

这就是我通常使用 API 的方式。请注意,AWS 凭证是通过环境变量传递的,但您仍然可以按原样传递它们。从逻辑上讲,如果您正确添加凭据,管理员访问权限应该允许您将文件上传到 S3。但是,我使用的是我刚刚发布的方法,而不是您使用的方法。

关于node.js - 使用nodejs和aws遇到403错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com