У многих разных ответов на SO, похоже, разные идеи о том, как это сделать ... Я пытался собрать их вместе и заставить это работать, но не повезло.
В основном, мои console.log("uploading....")
и console.log("uploaded....")
обнаруживаются, но на самом деле ничего не загружается.Также не отображаются ошибки.
server.js
:
const aws = require("aws-sdk");
const multer = require("multer");
const multerS3 = require("multer-s3");
//aws setup
const s3 = new aws.S3();
aws.config.update({
secretAccessKey: "MY_SECRET",
accessKeyId: "MY_KEY",
region: "us-east-1"
});
const upload = multer({
storage: multerS3({
s3: s3,
bucket: "filehub",
key: function(req, file, cb) {
cb(null, file.originalname);
}
})
}).array("upload", 1);
app.post("/files/upload_aws", (req, res, next) => {
upload(req, res, function(err) {
console.log("uploading....");
if (err) {
console.log(err);
}
console.log("uploaded....");
});
});
И на внешнем интерфейсе, на случай, если это кому-нибудь поможет, хотя эта часть, кажется, работает просто отлично:
handleAWSFile = e => {
e.preventDefault();
console.log("clicked");
axios
.post("files/upload_aws")
.then(res => {
this.props.handleSnackBar("File added to AWS");
})
.catch(res => {
this.props.handleSnackBar("File NOT added to AWS!!");
});
};