AWS загрузка файла с nodejs API не работает - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу загрузить изображения моего проекта на 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". Почему бэкэнд не получает это хорошо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...