Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
be8b56b8
Commit
be8b56b8
authored
Jul 03, 2020
by
张云飞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zyf
parent
075ceda3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
176 additions
and
50 deletions
+176
-50
center-taskexecutor/app/base/db/task/ic/icZipTask.js
+0
-0
center-taskexecutor/app/base/db/task/icp/icpGenerateTask.js
+82
-50
center-taskexecutor/app/base/utils/execClient.js
+94
-0
center-taskexecutor/app/base/utils/restClient.js
+0
-0
No files found.
center-taskexecutor/app/base/db/task/ic/icZipTask.js
View file @
be8b56b8
This diff is collapsed.
Click to expand it.
center-taskexecutor/app/base/db/task/icp/icpGenerateTask.js
View file @
be8b56b8
...
@@ -18,7 +18,6 @@ class IcpGenerateTask extends TaskBase {
...
@@ -18,7 +18,6 @@ class IcpGenerateTask extends TaskBase {
async
subBeforeTask
(
params
)
{
async
subBeforeTask
(
params
)
{
//创建目录,判断文件目录是否存在,不存在就创建 /tmp/icp
//创建目录,判断文件目录是否存在,不存在就创建 /tmp/icp
var
icpPath
=
'/tmp/icp'
var
icpPath
=
'/tmp/icp'
if
(
!
fs
.
existsSync
(
icpPath
))
{
if
(
!
fs
.
existsSync
(
icpPath
))
{
...
@@ -43,6 +42,43 @@ class IcpGenerateTask extends TaskBase {
...
@@ -43,6 +42,43 @@ class IcpGenerateTask extends TaskBase {
// console.log(error);
// console.log(error);
return
;
return
;
}
}
try
{
var
that
=
this
;
var
bucketandregion
=
await
this
.
getBucketRegion
(
that
.
cosgetsecreturl
)
var
bucket
=
bucketandregion
.
bucket
;
/* 必须 */
var
region
=
bucketandregion
.
region
;
/* 必须 */
var
cos
=
new
COS
({
getAuthorization
:
function
(
options
,
callback
)
{
// 异步获取临时密钥
request
({
url
:
that
.
cosgetsecreturl
,
data
:
{
// 可从 options 取需要的参数
// Bucket: 'test-1258715722', /* 必须 */
// Region: 'ap-beijing', /* 必须 */
}
},
function
(
err
,
response
,
body
)
{
try
{
var
resultdata
=
JSON
.
parse
(
body
);
if
(
resultdata
.
status
==
1
)
{
var
data
=
resultdata
.
data
;
var
credentials
=
data
.
credentials
;
}
}
catch
(
e
)
{
}
if
(
!
data
||
!
credentials
)
return
console
.
error
(
'credentials invalid'
);
callback
({
TmpSecretId
:
credentials
.
tmpSecretId
,
// 临时密钥的 tmpSecretId
TmpSecretKey
:
credentials
.
tmpSecretKey
,
// 临时密钥的 tmpSecretKey
XCosSecurityToken
:
credentials
.
sessionToken
,
// 临时密钥的 sessionToken
ExpiredTime
:
data
.
expiredTime
,
// 临时密钥失效时间戳,是申请临时密钥时,时间戳加 durationSeconds
});
});
}
});
}
catch
(
error
)
{
return
;
}
//遍历数据
//遍历数据
var
datalist
=
materiadata
;
var
datalist
=
materiadata
;
for
(
var
j
=
0
;
j
<
datalist
.
length
;
j
++
)
{
for
(
var
j
=
0
;
j
<
datalist
.
length
;
j
++
)
{
...
@@ -627,44 +663,11 @@ class IcpGenerateTask extends TaskBase {
...
@@ -627,44 +663,11 @@ class IcpGenerateTask extends TaskBase {
"url"
:
""
"url"
:
""
}
}
//把打包文件上传到cos
//把打包文件上传到cos
var
bucket
=
'test-1258715722'
;
/* 必须 */
var
begion
=
'ap-beijing'
;
/* 必须 */
var
that
=
this
;
var
that
=
this
;
var
cos
=
new
COS
({
getAuthorization
:
function
(
options
,
callback
)
{
// 异步获取临时密钥
request
({
url
:
that
.
cosgetsecreturl
,
data
:
{
// 可从 options 取需要的参数
// Bucket: 'test-1258715722', /* 必须 */
// Region: 'ap-beijing', /* 必须 */
}
},
function
(
err
,
response
,
body
)
{
try
{
var
resultdata
=
JSON
.
parse
(
body
);
if
(
resultdata
.
status
==
1
)
{
var
data
=
resultdata
.
data
;
var
credentials
=
data
.
credentials
;
Bucket
=
credentials
.
tmpBucket
;
Region
=
credentials
.
tmpRegion
;
}
}
catch
(
e
)
{
}
if
(
!
data
||
!
credentials
)
return
console
.
error
(
'credentials invalid'
);
callback
({
TmpSecretId
:
credentials
.
tmpSecretId
,
// 临时密钥的 tmpSecretId
TmpSecretKey
:
credentials
.
tmpSecretKey
,
// 临时密钥的 tmpSecretKey
XCosSecurityToken
:
credentials
.
sessionToken
,
// 临时密钥的 sessionToken
ExpiredTime
:
data
.
expiredTime
,
// 临时密钥失效时间戳,是申请临时密钥时,时间戳加 durationSeconds
});
});
}
});
var
getParam
=
await
new
Promise
(
function
(
resv
,
rej
)
{
var
getParam
=
await
new
Promise
(
function
(
resv
,
rej
)
{
cos
.
putObject
({
cos
.
putObject
({
Bucket
:
bucket
,
/* 必须 */
Bucket
:
bucket
,
/* 必须 */
Region
:
b
egion
,
/* 必须 */
Region
:
r
egion
,
/* 必须 */
Key
:
zipdir
,
/* 必须 */
Key
:
zipdir
,
/* 必须 */
Body
:
fs
.
createReadStream
(
zipdir
),
Body
:
fs
.
createReadStream
(
zipdir
),
},
function
(
err
,
data
)
{
},
function
(
err
,
data
)
{
...
@@ -681,12 +684,15 @@ class IcpGenerateTask extends TaskBase {
...
@@ -681,12 +684,15 @@ class IcpGenerateTask extends TaskBase {
});
});
if
(
getParam
)
{
if
(
getParam
)
{
resultJson
.
url
=
'http://'
+
getParam
;
resultJson
.
url
=
'http://'
+
getParam
;
var
icpUpMaterialurl
=
this
.
icpMaterialurl
+
'/web/delivery/materialCtl/updateUrl'
;
console
.
log
(
resultJson
);
//请求返回接口,传输上传接口
// var icpUpMaterialurl = this.icpMaterialurl + '/web/delivery/materialCtl/updateUrl';
await
this
.
restclient
.
execPost
(
resultJson
,
icpUpMaterialurl
);
// //请求返回接口,传输上传接口
// await this.restclient.execPost(resultJson, icpUpMaterialurl);
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
error
);
continue
;
continue
;
}
}
...
@@ -701,14 +707,14 @@ class IcpGenerateTask extends TaskBase {
...
@@ -701,14 +707,14 @@ class IcpGenerateTask extends TaskBase {
var
id_dir
=
'/tmp/icp/'
+
Id
;
var
id_dir
=
'/tmp/icp/'
+
Id
;
//压缩包
//压缩包
var
id_zip
=
id_dir
+
'.zip'
;
var
id_zip
=
id_dir
+
'.zip'
;
if
(
fs
.
existsSync
(
id_dir
))
{
//
if (fs.existsSync(id_dir)) {
// delete
//
// delete
child_process
.
spawn
(
'rm'
,
[
'-r'
,
id_dir
]);
//
child_process.spawn('rm', ['-r', id_dir]);
}
//
}
if
(
fs
.
existsSync
(
id_zip
))
{
//
if (fs.existsSync(id_zip)) {
child_process
.
spawn
(
'rm'
,
[
id_zip
]);
//
child_process.spawn('rm', [id_zip]);
}
//
}
}
}
}
}
...
@@ -716,9 +722,11 @@ class IcpGenerateTask extends TaskBase {
...
@@ -716,9 +722,11 @@ class IcpGenerateTask extends TaskBase {
async
downFile
(
data
,
dir
)
{
async
downFile
(
data
,
dir
)
{
// console.log(data, dir);
// console.log(data, dir);
//下载文件
//下载文件
var
bucket
=
'test-1258715722'
;
/* 必须 */
var
region
=
'ap-beijing'
;
/* 必须 */
var
that
=
this
;
var
that
=
this
;
var
bucketandregion
=
await
this
.
getBucketRegion
(
that
.
cosgetsecreturl
)
var
bucket
=
bucketandregion
.
bucket
;
/* 必须 */
var
region
=
bucketandregion
.
region
;
/* 必须 */
var
cos
=
new
COS
({
var
cos
=
new
COS
({
getAuthorization
:
function
(
options
,
callback
)
{
getAuthorization
:
function
(
options
,
callback
)
{
// 异步获取临时密钥
// 异步获取临时密钥
...
@@ -735,8 +743,6 @@ class IcpGenerateTask extends TaskBase {
...
@@ -735,8 +743,6 @@ class IcpGenerateTask extends TaskBase {
if
(
resultdata
.
status
==
1
)
{
if
(
resultdata
.
status
==
1
)
{
var
data
=
resultdata
.
data
;
var
data
=
resultdata
.
data
;
var
credentials
=
data
.
credentials
;
var
credentials
=
data
.
credentials
;
Bucket
=
credentials
.
tmpBucket
;
Region
=
credentials
.
tmpRegion
;
}
}
}
catch
(
e
)
{
}
}
catch
(
e
)
{
}
if
(
!
data
||
!
credentials
)
return
console
.
error
(
'credentials invalid'
);
if
(
!
data
||
!
credentials
)
return
console
.
error
(
'credentials invalid'
);
...
@@ -749,6 +755,7 @@ class IcpGenerateTask extends TaskBase {
...
@@ -749,6 +755,7 @@ class IcpGenerateTask extends TaskBase {
});
});
}
}
});
});
var
downfiles
=
data
;
var
downfiles
=
data
;
for
(
var
i
=
0
;
i
<
downfiles
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
downfiles
.
length
;
i
++
)
{
var
filedata
=
downfiles
[
i
];
var
filedata
=
downfiles
[
i
];
...
@@ -784,6 +791,31 @@ class IcpGenerateTask extends TaskBase {
...
@@ -784,6 +791,31 @@ class IcpGenerateTask extends TaskBase {
});
});
})
})
}
}
//获取账号和地域信息
async
getBucketRegion
(
cosgetsecreturl
)
{
var
br
=
{
bucket
:
'csig-brgicp-dev-1258344699'
,
/* 必须 */
region
:
'ap-guangzhou'
,
/* 必须 */
}
try
{
var
rtn
=
await
this
.
restclient
.
execPost
({},
cosgetsecreturl
);
if
(
!
rtn
||
!
rtn
.
stdout
)
{
return
br
;
}
var
result
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
result
.
status
==
1
)
{
var
credentials
=
result
.
data
.
credentials
;
br
.
bucket
=
credentials
.
tmpBucket
;
br
.
region
=
credentials
.
tmpRegion
;
return
br
;
}
else
{
return
br
;
}
}
catch
(
error
)
{
// console.log(error);
return
br
;
}
}
async
subDoTask
(
params
)
{
async
subDoTask
(
params
)
{
console
.
log
(
params
);
console
.
log
(
params
);
...
...
center-taskexecutor/app/base/utils/execClient.js
0 → 100644
View file @
be8b56b8
var
childproc
=
require
(
'child_process'
);
const
util
=
require
(
'util'
);
const
exec
=
util
.
promisify
(
require
(
'child_process'
).
exec
);
class
ExecClient
{
constructor
()
{
this
.
cmdPostPattern
=
"curl -k -H 'Content-type: application/json' -d '{data}' {url}"
;
this
.
cmdGetPattern
=
"curl -G -X GET '{url}'"
;
this
.
cmdPostPattern3
=
"curl -k -H 'Content-type: application/json' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcnpaWmhXRXBKNVVFZzRZUU5uUmlyVEJXa1FQbnZ6UyIsImlhdCI6MTU5MjcwOTYzNn0.TWk_F6Tz3fRMqspoG24VSt5RiC4ldFembFYcLcAbowE' -H 'XAPPKEY: 647a68c9-da01-40d3-9763-1ffa0f64cf3f' -d '{data}' {url}"
;
}
async
exec
(
cmd
)
{
//await后面表达式返回的promise对象,是then的语法糖,await返回then函数的返回值
//异常需要try/catch自己捕获或外部catch捕获
const
{
stdout
,
stderr
}
=
await
exec
(
cmd
);
return
{
stdout
,
stderr
};
}
async
exec2
(
cmd
)
{
return
exec
(
cmd
,
{
encoding
:
"base64"
});
}
FetchPostCmd
(
subData
,
url
)
{
var
data
=
JSON
.
stringify
(
subData
);
var
cmd
=
this
.
cmdPostPattern
.
replace
(
/
\{
data
\}
/g
,
data
).
replace
(
/
\{
url
\}
/g
,
url
);
console
.
log
(
cmd
);
return
cmd
;
}
async
execPost
(
subData
,
url
)
{
let
cmd
=
this
.
FetchPostCmd
(
subData
,
url
);
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
FetchPostCmd3
(
subData
,
url
)
{
var
data
=
JSON
.
stringify
(
subData
);
var
cmd
=
this
.
cmdPostPattern3
.
replace
(
/
\{
data
\}
/g
,
data
).
replace
(
/
\{
url
\}
/g
,
url
);
console
.
log
(
cmd
);
return
cmd
;
}
async
execPost3
(
subData
,
url
)
{
let
cmd
=
this
.
FetchPostCmd3
(
subData
,
url
);
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
async
execPost2
(
subData
,
url
)
{
let
cmd
=
this
.
FetchPostCmd
(
subData
,
url
);
var
result
=
await
this
.
exec2
(
cmd
);
return
result
;
}
FetchGetCmd
(
subData
,
url
)
{
var
cmd
=
this
.
cmdGetPattern
.
replace
(
/
\{
data
\}
/g
,
subData
).
replace
(
/
\{
url
\}
/g
,
url
);
console
.
log
(
cmd
);
return
cmd
;
}
async
execGet
(
subData
,
url
)
{
let
cmd
=
this
.
FetchGetCmd
(
subData
,
url
);
console
.
log
(
cmd
);
var
result
=
await
this
.
exec
(
cmd
);
return
result
;
}
async
execGet2
(
subData
,
url
)
{
let
cmd
=
this
.
FetchGetCmd
(
subData
,
url
);
console
.
log
(
cmd
);
var
result
=
await
this
.
exec2
(
cmd
);
return
result
;
}
async
execGetTimeOut
(
subData
,
url
,
timeOut
=
5000
)
{
//timeOut,单位是毫秒
let
cmd
=
this
.
FetchGetCmd
(
subData
,
url
);
var
options
=
{
timeout
:
timeOut
,
};
const
{
stdout
,
stderr
}
=
await
exec
(
cmd
,
options
);
return
{
stdout
,
stderr
};
}
}
module
.
exports
=
ExecClient
;
// var x=new RestClient();
// x.execGet("","http://www.163.com").then(function(r){
// console.log(r.stdout);
// console.log(r.stderr);
// });
center-taskexecutor/app/base/utils/restClient.js
View file @
be8b56b8
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment