Necesito convertir este comando curl en una solicitud de nodejs, ya sea usando las bibliotecas de red fetch
, request
o axios
La solicitud debe PUT
los datos del archivo en la URL
curl -v -H "Content-Type:application/octet-stream" --upload-file C:/Users/deanv/Pictures/test3.mp4 "https://www.example.com/file/upload"
Intenté usar CurlConverter para convertir mi comando curl en código de nodo, pero esto no funciona porque no puedo agregar los datos del archivo.
var fetch = require('node-fetch'); fetch('https://www.example.com/file/upload', { method: 'PUT', headers: { 'Content-Type': 'application/octet-stream' } });
Toda ayuda apreciada. Gracias por adelantado.
Prueba esto:
// setup modules const fetch = require('node-fetch'); const FormData = require('form-data'); const fs = require('fs'); const path = require('path'); // setup paths const pathToFile = 'C:/Users/deanv/Pictures/test3.mp4'; const uploadUrl = 'https://www.example.com/file/upload'; // create form, 'content-type' header will be multipart/form-data const form = new FormData(); // read the file as stream const fileStream = fs.createReadStream(path.resolve(pathToFile)); // add the file to the form form.append('my_file', fileStream); fetch(uploadUrl, { method: 'PUT', body: form }).then((res) => { console.log('done: ', res.status); return res.text(); }) .then((res) => { console.log('raw response: ', res); }) .catch(err => { console.log('err', err); });