Last active
August 2, 2024 13:33
-
-
Save senthilmpro/072f5e69bdef4baffc8442c7e696f4eb to your computer and use it in GitHub Desktop.
Download File using axios : Node.js program
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict' | |
const Fs = require('fs') | |
const Path = require('path') | |
const Axios = require('axios') | |
async function downloadImage () { | |
const url = 'https://unsplash.com/photos/AaEQmoufHLk/download?force=true' | |
const path = Path.resolve(__dirname, 'images', 'code1.jpg') | |
// axios image download with response type "stream" | |
const response = await Axios({ | |
method: 'GET', | |
url: url, | |
responseType: 'stream' | |
}) | |
// pipe the result stream into a file on disc | |
response.data.pipe(Fs.createWriteStream(path)) | |
// return a promise and resolve when download finishes | |
return new Promise((resolve, reject) => { | |
response.data.on('end', () => { | |
resolve() | |
}) | |
response.data.on('error', () => { | |
reject() | |
}) | |
}) | |
} | |
async function Main(){ | |
const data = await downloadImage(); | |
console.log("DATA ", data); | |
} | |
Main(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@leite08 Thank you for correcting me! This was a while ago so i don't know the reason for saying what i did there. I must have had a reason... Don't know what though.
A couple fun notes though :)
writer
object below the response. That way you'd at least know the file is opened on a successful http response. It can still fail but that's much less of an edge case then you have now.Care to go for a second try with the promises api instead? I'm just really curious what you come up with!