Необработанное отклонение (ошибка типа): Не удается прочитать свойство «Поток» неопределенного, aws-sdk, ipfs

#node.js #reactjs #amazon-s3 #ipfs

Вопрос:

Я пытаюсь отправить файл, хранящийся в облаке aws S3, в ipfs с помощью Pinata. Но когда я вызываю следующую функцию, я получаю ошибку «Не удается прочитать свойство «Поток » неопределенный»». Я очень старался, но не мог найти решение. Я новичок в reactjs и nodejs, буду очень признателен, если кто-нибудь сможет помочь.
:

 const s3Stream = s3.getObject({
  Bucket: s3Bucket,
  Key: fileName
})
.createReadStream()
 

Вся функция:

   const AWS = require('aws-sdk');
  const axios = require('axios');
  const FormData = require('form-data');
  
  const s3AccessKeyId = process.env.REACT_APP_ID;
  const s3AccessSecret = process.env.REACT_APP_SECRET;
  const s3Region = process.env.REACT_APP_REGION;
  const s3Bucket = process.env.REACT_APP_BUCKET_NAME;
  const apiKey = process.env.REACT_APP_PINATA_KEY;
  const apiSecret = process.env.REACT_APP_PINATA_SECRET;

  var form = new FormData();
  const fileName = filename;
  const url = 'https://api.pinata.cloud/pinning/pinFileToIPFS';
  
  const s3 = new AWS.S3({
    credentials: {
      accessKeyId: s3AccessKeyId,
      secretAccessKey: s3AccessSecret,
      region: s3Region
    }
  });

  const s3Stream = s3.getObject({
    Bucket: s3Bucket,
    Key: fileName
  })
    .createReadStream()
    .catch(error => {
      console.log(error);
    });

  form.append('file', s3Stream, {
    filename: fileName //required or it fails
  });

  var config = {
    method: 'post',
    url: url,
    'maxBodyLength': Infinity,
    headers: {
      'pinata_api_key': apiKey,
      'pinata_secret_api_key': apiSecret,
      ...form.getHeaders()
    },
    data: form
  };

  axios(config)
    .then(function (response) {
      return { sucess: true, data: JSON.stringify(response.data) };
    })
    .catch(function (error) {
      return { sucess: false, data: JSON.stringify(error) };
    });