Как я могу переместить исполняемый файл между двумя серверами без scp, используя node.js? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть узел / экспресс-экосистема приложений, и в какой-то момент мне нужно переместить файл, который загружен на одну из машин, где хранится этот файл, и скопировать его на другую.

На этих двух машинах работают два разных сервиса экосистемы. Позвоните им, служба приёма и коммунальные услуги

Вот как я это делаю.

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

request({
    method: 'GET',
    url: the_utilities_url
},
(err, response, body) => {
    if (err) {
        // Logic and callback invocation
    }
    // More logic and callback invocation
})

На стороне коммунальных услуг я просто делаю

return res.sendFile(path_to_the_file)

При распечатке полученного ответа я вижу содержимое exe (независимо от того, насколько они читабельны).

Позже, по возвращении из запроса в утилиты, я делаю

fs.writeFile(target_path, data_retrieved, a_callback_function)

Полученный файл имеет другой размер и контрольную сумму md5, чем исходный. Конечно, вызов этого вызывает ошибку. Я тоже пробовал то же самое, но данные были обернуты Buffer.from

Итак, мой вопрос: как я могу перенести exe-файл с машины на другую машину, не вызывая scp? Как это работает для других типов файлов, таких как текстовые файлы, что я делаю неправильно для двоичных файлов?

1 Ответ

0 голосов
/ 06 ноября 2018

ответ по умолчанию на запрос в формате utf-8, вы должны указать encoding: null, чтобы получить правильный двоичный буфер.

Примечание: этот метод буферизует весь файл в памяти, при работе с большими файлами рассмотрите возможность использования потокового ответа.

...