Загрузка Slack файлов на S3 больше оригинального - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь сделать фотографию, загруженную в Slack, и положить ее на S3. У меня есть загрузка Slack, запускающая функцию Lambda, затем я получаю file.info, а затем GET файла из «private_url». Проблема заключается в том, что «тело» ответа больше исходного файла и размер файла, указанный в вызове file.info для Slack. В результате файл не открывается. Это только кажется проблемой с медиа-файлами. Текстовые файлы работают просто отлично.

Снимок экрана с разницей в размерах файлов

Я также только что попытался записать в свою локальную систему и получить такой же раздутый файл.

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

    var params = {
      token: process.env.BOT_TOKEN,
      file: lifeObject.eventBody.event.file.id
    }

    Slack.files.info(params)
      .then((result) => {
        lifeObject.fileInfo = result
        resolve(lifeObject)
      })

  })
}

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

    request.get({
      url: lifeObject.fileInfo.file.url_private,
      headers: {
        "Authorization": "Bearer " + process.env.BOT_TOKEN
      }
    }, function(error, response, body) {
      
        var params = {
            Body: body, 
            Bucket: s3Bucket, 
            Key: "tempFileName.jpg"
        };

        s3.putObject(params, function(err, data) {
            if (err){
            console.log(err, err.stack)
            reject(err)
        } else {
            resolve(data)
        }     
        });
      

    })

  })
}
...