Files
opencloud/tests/k6/scripts/postinstall.js

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')
})()