[英]Upload to S3 using aws-sdk and Node/Express
我一直遵循本指南,使用aws-sdk和Node / Express將簡單文件上傳到S3,以嘗試讓用戶通過S3上傳圖像。 由於某種原因,我無法使其正常工作。 我該如何修復我的代碼以更正錯誤?
我得到的錯誤是:TypeError:無法讀取未定義的屬性“ 0”。
var aws = require('aws-sdk');
var multerS3 = require('multer-s3');
var multer = require("multer");
(Not real codes)
aws.config.update({
secretAccessKey: 'QWUdawup',
accessKeyId: 'GHQWD1A',
region: 'us-east-2'
});
var s3 = new aws.S3();
var upload = multer({
storage: multerS3({
s3: s3,
bucket: 'medstayfiles',
key: function (req, file, cb) {
console.log(file);
cb(null, file.originalname); //use Date.now() for unique file keys
}
})
});
router.post("/", middleware.isLoggedIn, upload.array('image', 1), function(req, res,next){
var filepath = undefined;
if(req.files[0]) {
filepath = req.files[0].key; // 'uploads/xxxxx.extension'
}
var newRentals = {filepath: filepath}
Rentals.create(newRentals, function(err, newlyCreated){
if(err){
console.log(err);
} else {
//redirect back to rentals page
res.redirect("/rentals");
}
});
});
您沒有提到錯誤的出現位置,但是根據您的代碼,似乎req.files
是未定義的。 您可能需要添加適當的中間件來處理文件上傳。
確實,但是,如果您要接受來自Web用戶的帖子,則只應使用預先簽名的URL或上傳表單將它們直接上傳到S3。 節省麻煩和帶寬。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.