s
This commit is contained in:
19
network.js
Normal file
19
network.js
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
const https = require('https');
|
||||
const fs = require('fs');
|
||||
function downloadFile(url, dest) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = { headers: { 'User-Agent': 'Mozilla/5.0' } };
|
||||
const request = https.get(url, options, (response) => {
|
||||
if (response.statusCode === 301 || response.statusCode === 302) {
|
||||
return downloadFile(response.headers.location, dest).then(resolve).catch(reject);
|
||||
}
|
||||
if (response.statusCode !== 200) { return reject(new Error(`Failed: ${response.statusCode}`)); }
|
||||
const file = fs.createWriteStream(dest);
|
||||
response.pipe(file);
|
||||
file.on('finish', () => { file.close(() => resolve()); });
|
||||
});
|
||||
request.on('error', (err) => { if (fs.existsSync(dest)) fs.unlink(dest, () => {}); reject(err); });
|
||||
});
|
||||
}
|
||||
module.exports = { downloadFile };
|
||||
Reference in New Issue
Block a user