我正在使用的相关软件包是aws-sdk
、multer-s3
和multer
。
我有这样的上传设置:
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 { /*...*/ }
passed1
和都passed2
输出到控制台,我确信我的访问密钥和密钥 ID 是正确的。当我尝试上传图片时,出现 403 错误。
我正在使用本机反应,我正在做
const aws = require("aws-sdk/dist/aws-sdk-react-native");
这完全没有给我任何反馈,在我点击“上传”后,程序只是继续运行,好像什么也没发生一样。
然后我将nodejs导入更改为,
const aws = require("aws-sdk");
现在我被抛出 403。不知道我做错了什么。
编辑:
我的 S3 的权限: