Отправка изображения в двоичном виде через запрос («http») на удаленный сервер

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

Замечания: Прямо как бинарный запрос в почтальоне и выбор файла и отправка)

function upload(options, body) {
    body = body || '';
    return new Promise(function(resolve, reject){
        const https = require('https');
        https.request(options, function(response) {
            var body = [];
            response.on('data', function(chunk) {
                body.push(chunk);
            });
            response.on('end', function(){
                resolve(JSON.parse(Buffer.concat(body).toString()))
            });
        }).on('error', function(error) {
            reject(error);
        }).end(body);
    });
}

Использование:

var options = {
    hostname: "hostname",
    path: "/upload",
    port: 443,
    method: 'PUT',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'image/png'
    }
};

fs.readFile('./img/thumbnail.png', function(error, data) {
     options.body = data;
     upload(options).then(...
});

Редактировать 2

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

const https = require('https');
var request = https.request(options, function(response) {
    var buffers = [];
    response.on('data', function(chunk) {
        buffers.push(chunk);
    });
    response.on('end', function(){
        console.log(response.headers['content-type']);
        var body = JSON.parse(buffers.length ? Buffer.concat(buffers).toString() : '""');
        response.statusCode >= 200 && response.statusCode < 300 ? resolve(body) : reject(body);
    });
}).on('error', function(error) {
    reject(error);
});

const fs = require('fs');
var readStream = fs.ReadStream(body.path);
readStream.pipe(request);
readStream.on('close', function(){
    request.end();
});

Ссылка

Ответы на вопрос(1)

Ваш ответ на вопрос