У меня проблема с загрузкой файлов на локальный компьютер с помощью fs.pipe () в моем облачном литейном приложении Node.js / Express.
По сути, запрос POST отправляется на мой код на стороне сервера.содержит имя файла, который хочет загрузить мой пользователь.Я получаю доступ к файлу с помощью команды GET из модуля npm ssh2-sftp-client.Наконец, этот файл сохраняется в папке локальных загрузок пользователей с помощью папки загрузок модуля npm, чтобы определить это местоположение.Код выглядит следующим образом:
app.post('/download-file', function(req, res) {
// Declare the files remote and local path as a variable.
const remoteFilename = 'invoice/csv/' + req.body.file;
const localFilename = downloadsFolder() + '/' + req.body.file;
// Use the SFTP GET command to get the file passing its remote path variable.
sftp.get(remoteFilename).then((stream) => {
// Download the file to the users machine.
stream.pipe(fs.createWriteStream(localFilename));
// Redirect user.
res.redirect('/invoice')
});
})
Это прекрасно работает при локальном запуске, и файл загружается без проблем.Как показано на этом снимке экрана, путь к целевому файлу выводится следующим образом:
Однако, когда я отправляю это нашему поставщику облачного литейного производства с помощью cf pushприложение по-прежнему работает нормально, но когда я хочу скачать файл, это не удается.Я не получаю ошибок при перехвате ошибок, единственное, что изменилось, это то, что выход для пути к файлу назначения изменился на:
У меня нетИдея, почему это так, этот код прекрасно работает в Chrome, Safari при локальном запуске, но при размещении ничего не делает.Кто-нибудь может объяснить, что здесь происходит не так?
Большое спасибо, G