mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-24 05:30:06 -06:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
const shell = require('shelljs')
|
|
const path = require("path")
|
|
const fs = require('fs');
|
|
const ora = require('ora');
|
|
const axios = require('axios');
|
|
|
|
const downloadFile = async (url, name) => {
|
|
const parsedPath = path.parse(url)
|
|
const destDir = './dist/_files/'
|
|
const destFile = path.join(destDir, name || parsedPath.base)
|
|
|
|
if (!fs.existsSync(destDir)) {
|
|
shell.mkdir('-p', destDir)
|
|
}
|
|
|
|
if(fs.existsSync(destFile)){
|
|
return
|
|
}
|
|
|
|
const spinner = ora(`downloading: ${ url }`).start();
|
|
const { data } = await axios({
|
|
method: "get",
|
|
url: url,
|
|
responseType: "stream"
|
|
});
|
|
const stream = fs.createWriteStream(destFile);
|
|
|
|
data.pipe(stream);
|
|
|
|
return new Promise((resolve, reject) => {
|
|
data.on('error', err => {
|
|
console.error(err);
|
|
spinner.stop();
|
|
reject(err);
|
|
});
|
|
|
|
data.on('end', () => {
|
|
stream.end();
|
|
spinner.stop();
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
|
|
(async () => {
|
|
await downloadFile('https://www.sample-videos.com/img/Sample-jpg-image-50kb.jpg', 'kb_50.jpg')
|
|
await downloadFile('http://ipv4.download.thinkbroadband.com/5MB.zip', 'mb_5.zip')
|
|
await downloadFile('http://ipv4.download.thinkbroadband.com/10MB.zip', 'mb_10.zip')
|
|
await downloadFile('http://ipv4.download.thinkbroadband.com/20MB.zip', 'mb_20.zip')
|
|
await downloadFile('http://ipv4.download.thinkbroadband.com/50MB.zip', 'mb_50.zip')
|
|
await downloadFile('http://ipv4.download.thinkbroadband.com/100MB.zip', 'mb_100.zip')
|
|
await downloadFile('http://ipv4.download.thinkbroadband.com/200MB.zip', 'mb_200.zip')
|
|
})()
|