Как отправить скачанный файл как ответ в Node.js? - PullRequest
0 голосов
/ 27 января 2019

Мне нужно загрузить файл с удаленного SFTP-сервера и отправить этот файл в качестве ответа в браузере.

Я использую следующий код для этой задачи, но у меня нет проблем.

router.get('/', (req, res) => {
  const remotePath = '/reports/' + 'daly.csv'

  const localePath = path.join(process.env.HOME || process.env.USERPROFILE, 'downloads/daly.csv')

  sftp.connect(config.sftpServer, 'on').then(() => {
    const options = {
      root: path.join(process.env.HOME || process.env.USERPROFILE, 'downloads'),
      dotfiles: 'deny',
      headers: {
        'x-timestamp': Date.now(),
        'x-sent': true
      }
    }

    sftp.fastGet(remotePath, localePath, {}).then(() => {
      res.setHeader('Content-disposition', 'attachment; filename=daily.csv')
      res.sendFile('daily.csv', options)
    })

  }).catch((error) => {
    console.log(error)
  })
})

Как выМожно видеть, что я использую fastGet метод библиотеки ssh2-sftp-client для загрузки файла с удаленного сервера на локальную машину пользователя.После этого я использую sendFile метод Express Framework.В финале у меня есть 2 одинаковых CSV-файла в локальной папке компьютера пользователя.Как решить эту проблему?

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