Отправить изображение с canvas через post-запрос rest api в вк как через ReadStream
Я пытаюсь загрузить картинку в ВК через их API HTTP-запросами через Node js.
Пока что я смог это сделать загружая файл с диска через fs.createReadStream:
var fetch = require('node-fetch');
var fd = require('form-data');
const fs = require('fs');
const path = require('path');
let myHeaders = new fetch.Headers();
myHeaders.append("Cookie", "remixlang=0; remixstlid=9089908479025776857_pfzzJOisdzK6eNtRHsN13V8Md45NktdPbTMPKxm6ruT");
const buffer = fs.createReadStream("C:\\Users\\Name\\Desktop\\Map.png")
let formdata = new fd();
formdata.append("photo", buffer);
let requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};
fetch(some_upload_url, requestOptions)
Оно работает отлично, но я хочу загрузить картинку с canvas, которую сгенерирую в скрипте. Я пробовал отправлять buffer, base64 и blob, но это не сработало, возвращаемое поле photo пусто. Можно было бы просто сохранить файл на диск, отправить его а затем удалить, но мне кажется это излишним.
Так что я ищу способ сымитировать fs.ReadStream внутри программы, чтобы загрузить картинку из canvas
Источник: Stack Overflow на русском