私が使用している関連パッケージは、、、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 のアクセス許可: