@struggler/cli 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/command/index.js +2 -0
- package/command/refresh.js +131 -0
- package/command/upload.js +23 -21
- package/index.js +8 -1
- package/package.json +1 -1
package/command/index.js
CHANGED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
var fs = require('fs');
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
|
|
5
|
+
var qiniu = require("qiniu");
|
|
6
|
+
|
|
7
|
+
var qiniuPrefix = require("../lib/prefix")
|
|
8
|
+
|
|
9
|
+
let { getQiniuConfig, getDir } = require('../lib/config')
|
|
10
|
+
let { getJsonData, setJsonData } = require('../lib/files')
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
function main(options) {
|
|
14
|
+
const qiniuConfig = getJsonData(getQiniuConfig(options))
|
|
15
|
+
|
|
16
|
+
//自己七牛云的秘钥
|
|
17
|
+
|
|
18
|
+
var accessKey = qiniuConfig.accessKey
|
|
19
|
+
|
|
20
|
+
var secretKey = qiniuConfig.secretKey;
|
|
21
|
+
|
|
22
|
+
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
|
|
23
|
+
|
|
24
|
+
var cdnManager = new qiniu.cdn.CdnManager(mac);
|
|
25
|
+
|
|
26
|
+
//文件前缀
|
|
27
|
+
const prefix = qiniuPrefix.prefix(options);
|
|
28
|
+
|
|
29
|
+
let dir = getDir(options)
|
|
30
|
+
|
|
31
|
+
function refresh(key, localFile) {
|
|
32
|
+
|
|
33
|
+
const str = path.relative(dir, localFile)
|
|
34
|
+
|
|
35
|
+
key = prefix + str
|
|
36
|
+
|
|
37
|
+
//上传之后的文件名
|
|
38
|
+
key = key.replace(/\\/g, "/")
|
|
39
|
+
|
|
40
|
+
var url_file = qiniuConfig.domain + key
|
|
41
|
+
|
|
42
|
+
//URL 列表
|
|
43
|
+
var urlsToRefresh = [
|
|
44
|
+
url_file
|
|
45
|
+
];
|
|
46
|
+
//单次请求链接不可以超过10个,如果超过,请分批发送请求
|
|
47
|
+
cdnManager.refreshUrls(urlsToRefresh, function (respErr, respBody, respInfo) {
|
|
48
|
+
if (respErr) {
|
|
49
|
+
console.log(url_file + "文件刷新失败");
|
|
50
|
+
throw respErr;
|
|
51
|
+
|
|
52
|
+
} else {
|
|
53
|
+
if (respInfo.statusCode == 200) {
|
|
54
|
+
|
|
55
|
+
console.log(respBody.error,":", Object.keys(respBody.taskIds));
|
|
56
|
+
|
|
57
|
+
} else {
|
|
58
|
+
console.log(respInfo.statusCode);
|
|
59
|
+
if (respBody.error) {
|
|
60
|
+
|
|
61
|
+
console.log(respBody.error)
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
//遍历文件夹
|
|
73
|
+
|
|
74
|
+
function displayFile(param) {
|
|
75
|
+
|
|
76
|
+
//转换为绝对路径
|
|
77
|
+
|
|
78
|
+
//var param = path.resolve(param);
|
|
79
|
+
|
|
80
|
+
fs.stat(param, function (err, stats) {
|
|
81
|
+
|
|
82
|
+
//如果是目录的话,遍历目录下的文件信息
|
|
83
|
+
|
|
84
|
+
if (stats.isDirectory()) {
|
|
85
|
+
|
|
86
|
+
fs.readdir(param, function (err, file) {
|
|
87
|
+
|
|
88
|
+
file.forEach((e) => {
|
|
89
|
+
|
|
90
|
+
//遍历之后递归调用查看文件函数
|
|
91
|
+
|
|
92
|
+
//遍历目录得到的文件名称是不含路径的,需要将前面的绝对路径拼接
|
|
93
|
+
|
|
94
|
+
var absolutePath = path.join(param, e);
|
|
95
|
+
|
|
96
|
+
//var absolutePath = path.resolve(path.join(param, e));
|
|
97
|
+
|
|
98
|
+
displayFile(absolutePath)
|
|
99
|
+
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
} else {
|
|
105
|
+
|
|
106
|
+
//file2/这里是空间里的文件前缀
|
|
107
|
+
|
|
108
|
+
var key = 'file2';
|
|
109
|
+
|
|
110
|
+
var localFile = param;
|
|
111
|
+
|
|
112
|
+
if (!localFile.endsWith(".gz")) {
|
|
113
|
+
|
|
114
|
+
refresh(key, localFile);
|
|
115
|
+
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
displayFile(dir);
|
|
125
|
+
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
module.exports = main
|
package/command/upload.js
CHANGED
|
@@ -46,27 +46,6 @@ function main(options) {
|
|
|
46
46
|
let dir = getDir(options)
|
|
47
47
|
|
|
48
48
|
function upload(key, localFile) {
|
|
49
|
-
|
|
50
|
-
//这里base-html是存储空间名
|
|
51
|
-
|
|
52
|
-
// var Bucket = `cfun:${key}`;
|
|
53
|
-
|
|
54
|
-
var Bucket = qiniuConfig.Bucket;
|
|
55
|
-
|
|
56
|
-
var options = {
|
|
57
|
-
|
|
58
|
-
scope: Bucket,
|
|
59
|
-
|
|
60
|
-
// detectMime:0
|
|
61
|
-
|
|
62
|
-
// MimeType: 'text/html;text/css;text/javascript;application/x-gzip',
|
|
63
|
-
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
var putPolicy = new qiniu.rs.PutPolicy(options);
|
|
67
|
-
|
|
68
|
-
var uploadToken = putPolicy.uploadToken(mac);
|
|
69
|
-
|
|
70
49
|
//windows
|
|
71
50
|
|
|
72
51
|
/* let str = null;
|
|
@@ -94,6 +73,29 @@ function main(options) {
|
|
|
94
73
|
//上传之后的文件名
|
|
95
74
|
key = key.replace(/\\/g, "/")
|
|
96
75
|
|
|
76
|
+
//这里base-html是存储空间名
|
|
77
|
+
|
|
78
|
+
// var Bucket = `cfun:${key}`;
|
|
79
|
+
|
|
80
|
+
var Bucket = qiniuConfig.Bucket;
|
|
81
|
+
|
|
82
|
+
var options = {
|
|
83
|
+
|
|
84
|
+
// scope: Bucket,
|
|
85
|
+
|
|
86
|
+
// https://developer.qiniu.com/kodo/1289/nodejs#overwrite-uptoken
|
|
87
|
+
scope: Bucket + ":" + key
|
|
88
|
+
|
|
89
|
+
// detectMime:0
|
|
90
|
+
|
|
91
|
+
// MimeType: 'text/html;text/css;text/javascript;application/x-gzip',
|
|
92
|
+
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
var putPolicy = new qiniu.rs.PutPolicy(options);
|
|
96
|
+
|
|
97
|
+
var uploadToken = putPolicy.uploadToken(mac);
|
|
98
|
+
|
|
97
99
|
formUploader.putFile(uploadToken, key, localFile, null, function (respErr,
|
|
98
100
|
|
|
99
101
|
respBody, respInfo) {
|
package/index.js
CHANGED
|
@@ -17,7 +17,7 @@ console.log(magentaBright(figlet.textSync('struggler-cli', { horizontalLayout: '
|
|
|
17
17
|
program
|
|
18
18
|
.name('struggler-cli')
|
|
19
19
|
.description('CLI to Upload vite packaged files to Qiniu Cloud OSS.')
|
|
20
|
-
.version('
|
|
20
|
+
.version('1.0.3')
|
|
21
21
|
.option('-c, --config <path>', 'Specify the path to upload configuration file.', './command/qiniu.json')
|
|
22
22
|
.option('-d, --dir <path>', 'Specify the dir to upload.', './dist')
|
|
23
23
|
|
|
@@ -32,6 +32,13 @@ program
|
|
|
32
32
|
.description('Upload files under the specified file to Qiniu Cloud.')
|
|
33
33
|
.action(() => { command.upload(program.opts()) })
|
|
34
34
|
|
|
35
|
+
program
|
|
36
|
+
.command('refresh')
|
|
37
|
+
.description('refresh Qiniu Cloud files Cdn')
|
|
38
|
+
.action(() => { command.refresh(program.opts()) })
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
35
42
|
program
|
|
36
43
|
.command('addVersion')
|
|
37
44
|
.description('Package add version.')
|