1 | const request = require('request');
|
2 | const chalk = require('chalk');
|
3 |
|
4 | function httpUpload(httpOptions, assetMap, fn) {
|
5 |
|
6 | let formData = {};
|
7 | let { username, password, target, host, port } = httpOptions;
|
8 | let authStr = username && password? `${username}:${password}@` :'';
|
9 |
|
10 | assetMap.forEach(file => {
|
11 | formData[normalizePath(target + file.locPath)] = file.assetSource;
|
12 | });
|
13 | console.log('Start uploading');
|
14 | request.post({ url: `http://${authStr}${host}:${port}`, formData }, (error, res) => {
|
15 | console.log(chalk.bold.green('\n-----------------------------------------------'));
|
16 | console.log(chalk.green(`Upload file list:`));
|
17 | console.log(assetMap.map(asset => normalizePath(asset.locPath)));
|
18 | if (error) {
|
19 | console.log('Upload failed', error);
|
20 | } else if (res.statusCode !== 200) {
|
21 | console.log('Upload failed');
|
22 | } else {
|
23 | console.log(chalk.green(`Upload success!!!`));
|
24 | fn && fn();
|
25 | }
|
26 | });
|
27 | };
|
28 |
|
29 | function normalizePath(source) {
|
30 | return source.replace(/\\/g, "/").replace(/\/+/g, "/");
|
31 | }
|
32 |
|
33 | module.exports = httpUpload;
|