Загрузка в S3 Bucket с помощью NodeJS Callback должна быть функцией. Получил неопределенный - PullRequest
1 голос
/ 18 октября 2019

Попытка загрузки в корзину S3 в NodeJS, но я получаю эту ошибку:

##[error]Callback must be a function. Received undefined
##[error]Node run failed with exit code 1

Вот мой скрипт, выполняющий загрузку:

var AWS = require('aws-sdk');
const s3 = new AWS.S3({apiVersion: '2006-03-01', accessKeyId: AWS_SECRET_ID, secretAccessKey:AWS_SECRET_KEY, region:AWS_REGION  });
  var body = fs.open(`./${package}`);

  const params = {
   Body: body,
   Bucket: bucketName
   };
   s3.upload(params, function(err, data){
     if(err){
       console.log(`Failed upload to ${bucketName}`);
       throw err;
     } else {
       console.log(`Succesful upload to ${bucketName}`);
     }
   });

Я запутался здесь, потому чтоУ меня есть обратный вызов в загрузке? И многое из этого было просто скопировано и вставлено из примеров AWS.

1 Ответ

2 голосов
/ 18 октября 2019

fs.open() принимает аргумент, callback. Это, вероятно, источник ошибки.

Эта функция является асинхронной функцией, и поэтому возвращаемые данные должны обрабатываться функцией обратного вызова.

Вам понадобится:

fs.open(`./${package}`, (err, data) => {
   // Implement callback here
});

Документация NodeJS

...