Я загружаю файл в Amazon S3 с помощью SDK узла.Узел загрузки JS AWS S3. Как получить общедоступный URL-ответ
Загрузка файлов работает нормально, но я хочу, чтобы публичный URL-адрес файла отправлялся обратно клиенту.
На данный момент ответ я получаю:
Successfully uploaded data { ETag: '"957cd1a335adf5b4000a5101ec1f52bf"' }
Вот мой код. Я использую сервер Node Express, и Multer обрабатывает закачки.
app.use(multer({ // https://github.com/expressjs/multer
dest: './public/uploads/',
limits : { fileSize:100000 },
rename: function (fieldname, filename) {
var time = new Date().getTime();
return filename.replace(/\W+/g, '-').toLowerCase() + time;
},
onFileUploadData: function (file, data, req, res) {
// file : { fieldname, originalname, name, encoding, mimetype, path, extension, size, truncated, buffer }
var params = {
Bucket: creds.awsBucket,
Key: file.name,
Body: data,
ACL: 'public-read'
};
var s3 = new aws.S3()
s3.putObject(params, function (perr, pres) {
if (perr) {
console.log("Error uploading data: ", perr);
} else {
console.log("Successfully uploaded data", pres);
}
});
}
}));
app.post('/upload-image', function(req, res){
if(req.files.file === undefined){
res.send("error, no file chosen");
}
});
, как вы сделали это, чтобы работать, я получаю «Ошибка инициализации промежуточного TypeError: app.use() требует промежуточного программного обеспечения функций» сообщение – someUser