关于SO的许多不同答案似乎对此有不同的想法...我一直在试图将它们组合在一起并使其正常工作,但是没有运气。
基本上,我的"fc1f56b5-ff41-43ed-b27c-39eac9354323"
和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....");
});
});
答案 0 :(得分:0)
我认为这里发生了一些不同的事情。
我为Digital Ocean标记了不同的地区。我没有直接将区域放入aws.config更新中,而是:
val credential:AuthCredential = EmailAuthProvider.getCredential(email,link)
mAuth!!.currentUser?.linkWithCredential(credential)?.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
Log.d(TAG, "linkWithCredential:success")
val user = task.result?.user
} else {
Log.w(TAG, "linkWithCredential:failure", task.exception)
Toast.makeText(baseContext, "Authentication failed.",
Toast.LENGTH_SHORT).show()
}
}
此外,在multer存储功能中还包括一行用于acl的内容:
aws.config.update({
accessKeyId: process.env.SPACES_ACCESS_KEY_ID,
secretAccessKey: process.env.SPACES_SECRET_ACCESS_KEY
});
// Set S3 endpoint to DigitalOcean Spaces
const spacesEndpoint = new aws.Endpoint('nyc3.digitaloceanspaces.com');
const s3 = new aws.S3({
endpoint: spacesEndpoint
});
跟踪在数组末尾输入的任何名称也很重要。就我而言,我有“文件”。我将在POST请求中使用它。
这是我的邮递员上载示例: Postman Sample Upload