Friday 28 September 2018

[Help] Not able to save files from Axios request chain

Hi All: As the title says!​Essentially, i am not sure how to save the chunks of data being stored in totalData using available node modules without having a corrupted file. I am using fs.writeFile("downloads/file.zip", totalData.toString(), 'utf8', function (err) below in my code and a 7.6MB file gets saved, but it doesn't open. it says "unable to expand file.zip"(Error 21 - is not directory)const fs = require('fs'); const axios = require('axios'); // stitch together files const file_url = 'test.come/file.zip' const headerRange = 'bytes='; const headers = ['0-1048575', '1048576-2097151', '2097152-3145727', '3145728-4194304']; async function getFileInChunks() { try { const responseOne = await axios.get(file_url, { 'headers': { 'Range': `${headerRange}${headers[0]}` } }); const responseTwo = await axios.get(file_url, { 'headers': { 'Range': `${headerRange}${headers[1]}` } }); const responseThree = await axios.get(file_url, { 'headers': { 'Range': `${headerRange}${headers[2]}` } }); const responseFour = await axios.get(file_url, { 'headers': { 'Range': `${headerRange}${headers[3]}` } }); axios.all([responseOne, responseTwo, responseThree, responseFour]) .then((responses) => { //verify correct # of requests console.log('got data!', responses.length); const totalData = responses[0].data + responses[1].data + responses[2].data + responses[3].data; // console.log(totalData) fs.writeFile("downloads/file.zip", totalData, 'utf8', function (err) { if (err) { return console.log(err); } console.log("The file was saved!"); }); }) .catch((err) => { console.log(err) }); } catch (error) { console.log(error); } } getFileInChunks()

Submitted September 29, 2018 at 06:50AM by ohmynano

No comments:

Post a Comment