Я хочу загрузить изображения моего проекта на S3 из AWS через мой угол и nodejs + express проекта. Я сделал этот метод для загрузки изображений, которые, кажется, не работают
require("dotenv").config();
var AWS = require('aws-sdk');
BUCKET = 'my-bucket-name'
exports.uploadFile = async (file, folder) => {
AWS.config.update({
accessKeyId: process.env.ACCESS_KEY_ID,
secretAccessKey: process.env.SECRET_ACCESS_KEY,
region: process.env.REGION
})
var s3 = new AWS.S3()
s3.putObject({
Bucket: BUCKET,
Key: folder + "/" + file.name,
Body: file,
ACL: 'public-read',
ContentType: file.contentType
})
.promise()
.then(response => {
console.log(`done! - `, response)
console.log(
`The URL is ${s3.getSignedUrl('getObject', { Bucket: BUCKET, Key: folder + "/" + file.namey })}`
)
})
.catch(err => {
console.log('failed:', err)
})
}
Я вызываю его из проекта внешнего интерфейса с этой конечной точки.
uploadFile(file, folder) {
return this.requestService.request('POST', `${environment.endpoint}/upload`, {file: file, folder: folder}, {}, false);
}
Методы переднего компонента:
upload() {
const file = this.selectedFiles.item(0);
this.uploadService.uploadFile(file, this.type);
}
selectFile(event) {
this.selectedFiles = event.target.files;
}
Я пробовал, если изображение не работает с внешнего интерфейса, но оно работает, но в бэкэнде я получил "undefined". Почему бэкэнд не получает это хорошо?