Повреждение файла на S3 при загрузке с использованием безсерверной инфраструктуры - PullRequest
3 голосов
/ 15 мая 2019

Я использую Serverless Framework, который имеет функцию загрузки файла (изображения / Excel) на S3-корзину AWS.При загрузке файла я использую сервис S3 функции " putObject " с основными параметрами для загрузки.Данные файла передаются в формате Binary String и загружаются в корзину S3.

Моя локальная система выгружает файл в корзину S3 в соответствии с требованиями, но когда безсерверная инфраструктура развертывается с использованием " Лямбда-функция "AWS для той же функции, что и поврежденный файл, загружается.

Ниже приведен мой демонстрационный код:

//Router
app.post('/api/fileUpload', controller.fileUpload);

//Controller
exports.fileUpload = (req, res) => {
let params = {
    Bucket: 'BucketName',
    Key: 'keyofAWSS3',
    ContentType: 'image/jpeg',
    Body: data,//Data of file to be uploaded in Binary String format
    ACL: 'private'
};

//to create file on S3
return s3Service.CreateToS3(params).then((fromResolve) => {
  console.log(fromResolve);
}).catch((error) => {
   console.log(error);
}); 

}

//Service
exports.CreateToS3 = (params) => {
  let s3 = new AWS.S3();

return new Promise((resolve, reject) => {

    //Upload as a file to S3
    s3.putObject(params, (err, data) => {

    if (err) {
        reject(err);
    }

    resolve(data);

      });
    });
 };
...