Требуются базовые пакеты узлов.Я использую Node 8.10 в лямбда-выражении.
Я хотел бы загрузить image.png в Contentful, подобный этому примеру скручивания здесь .Я не уверен, нужно ли мне сначала сохранить файл на моем сервере, а затем прочитать файл и воспроизвести его.Или я могу просто выполнить потоковую передачу из строки base64?
Ниже приведен упрощенный код, но в основном я использую Puppeteer page.evaluate () для получения map.getCanvas().toDataURL()
;Я отправляю эти данные в Node для работы, и моя цель - загрузить их в Contentful.
Как создать http-запрос с базовым модулем Node https
, который похож на этот пример curl ?
$ curl -i -XPOST\ -H "Тип контента: приложение / поток октетов" \ -H "Авторизация: Носитель" \ --data-binary "@ / Users / ben / my-cute-cat.jpg" \
https://upload.contentful.com/spaces//uploads
const rawBase64 = mapImage.base64.split(',')[1];
const data = Buffer.from(rawBase64, 'base64');
const byteLength = Buffer.byteLength(data, 'base64');
const headers = {
'Authorization': `Bearer ${cmt}`,
'Content-Type': 'application/octet-stream',
};
const options = {
method: 'POST',
headers,
hostname,
path: `/${pathAsset}`,
body: data,
};
const request = https.request(options, res => {
let buffers = [];
res.on('data', buffer => {
buffers.push(buffer);
});
res.on('error', error => {
console.log({ error });
});
res.on('end', () => {
console.log('ENDED');
});
});
request.write(buffers);
request.end();
Нужно ли сначала конвертировать этот файл в png на сервере, а затем использовать этот файл в запросе?Или я могу просто использовать буфер из base64?Очень важно, чтобы я использовал application / octet-stream.