Commit be8b56b8 by 张云飞

zyf

parent 075ceda3
...@@ -9,213 +9,6 @@ const COS = require('cos-nodejs-sdk-v5'); ...@@ -9,213 +9,6 @@ const COS = require('cos-nodejs-sdk-v5');
const request = require('request'); const request = require('request');
var child_process = require('child_process'); var child_process = require('child_process');
var ddd = {
"status": 0,
"msg": "操作成功",
"data": [
{
"id": 12,
"uploadList": [
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "产权证",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/6f4bcd00-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "法人股东证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/71034100-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件1",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/761cf2d0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件2",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/78b68970-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件3",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/7b867250-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "执行董事证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/7f120a10-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "经理证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/80f03ff0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "监事证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8452cbe0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "购票人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/85fcf970-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "办税人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8799e090-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "财务负责人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/890668e0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "秘书联系人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8aad1400-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "社保缴费经办人证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8bf43a00-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "公积金缴费经办人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8d611070-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8eeedc60-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件4",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/90c263e0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件5",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/9252eef0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件6",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/94599460-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件7",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/95d537e0-b9d6-11ea-9e11-29abb292cf5f.png"
}
]
},
{
"id": 23,
"uploadList": [
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "产权证",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/6f4bcd00-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "法人股东证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/71034100-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件1",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/761cf2d0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件2",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/78b68970-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件3",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/7b867250-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "执行董事证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/7f120a10-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "经理证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/80f03ff0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "监事证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8452cbe0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "购票人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/85fcf970-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "办税人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8799e090-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "财务负责人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/890668e0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "秘书联系人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8aad1400-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "社保缴费经办人证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8bf43a00-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "公积金缴费经办人",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8d611070-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/8eeedc60-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件4",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/90c263e0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-03 23-00-27 的屏幕截图.png",
"title": "自然人股东证件5",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/9252eef0-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件6",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/94599460-b9d6-11ea-9e11-29abb292cf5f.png"
},
{
"name": "2020-06-11 20-46-55 的屏幕截图.png",
"title": "自然人股东证件7",
"viewUrl": "http://test-1258715722.cos.ap-beijing.myqcloud.com/materials/95d537e0-b9d6-11ea-9e11-29abb292cf5f.png"
}
]
}
]
}
class IcZipTask extends TaskBase { class IcZipTask extends TaskBase {
constructor() { constructor() {
super(TaskBase.getServiceName(IcZipTask)); super(TaskBase.getServiceName(IcZipTask));
...@@ -236,7 +29,7 @@ class IcZipTask extends TaskBase { ...@@ -236,7 +29,7 @@ class IcZipTask extends TaskBase {
try { try {
var icGetMaterialurl = this.icMaterialurl + '/web/bizchance/materialCtl/waitGenerate'; var icGetMaterialurl = this.icMaterialurl + '/web/bizchance/materialCtl/waitGenerate';
console.log(icGetMaterialurl); console.log(icGetMaterialurl);
var rtn = await this.restclient.execPost({}, icGetMaterialurl); var rtn = await this.restclient.execPost3({}, icGetMaterialurl);
if (!rtn || !rtn.stdout) { if (!rtn || !rtn.stdout) {
return; return;
} }
...@@ -247,7 +40,6 @@ class IcZipTask extends TaskBase { ...@@ -247,7 +40,6 @@ class IcZipTask extends TaskBase {
} else { } else {
return; return;
} }
} else { } else {
return; return;
} }
...@@ -255,8 +47,43 @@ class IcZipTask extends TaskBase { ...@@ -255,8 +47,43 @@ class IcZipTask 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;
}
// materiadata = ddd.data;
//遍历数据 //遍历数据
for (var j = 0; j < materiadata.length; j++) { for (var j = 0; j < materiadata.length; j++) {
try { try {
...@@ -285,48 +112,14 @@ class IcZipTask extends TaskBase { ...@@ -285,48 +112,14 @@ class IcZipTask extends TaskBase {
await archive.finalize(); await archive.finalize();
var resultJson = { var resultJson = {
"id": Id, 'id': Id,
"url": "" 'url': ''
} }
//把打包文件上传到cos //把打包文件上传到cos
var bucket = 'test-1258715722'; /* 必须 */
var begion = 'ap-beijing'; /* 必须 */
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: begion, /* 必须 */ Region: region, /* 必须 */
Key: zipdir, /* 必须 */ Key: zipdir, /* 必须 */
Body: fs.createReadStream(zipdir), Body: fs.createReadStream(zipdir),
}, function (err, data) { }, function (err, data) {
...@@ -346,7 +139,8 @@ class IcZipTask extends TaskBase { ...@@ -346,7 +139,8 @@ class IcZipTask extends TaskBase {
console.log(resultJson); console.log(resultJson);
var icUpMaterialurl = this.icMaterialurl + '/web/bizchance/materialCtl/updateZipById'; var icUpMaterialurl = this.icMaterialurl + '/web/bizchance/materialCtl/updateZipById';
// //请求返回接口,传输上传接口 // //请求返回接口,传输上传接口
await this.restclient.execPost(resultJson, icUpMaterialurl); var res = await this.restclient.execPost3(resultJson, icUpMaterialurl);
console.log(res);
} }
} catch (error) { } catch (error) {
continue; continue;
...@@ -361,13 +155,13 @@ class IcZipTask extends TaskBase { ...@@ -361,13 +155,13 @@ class IcZipTask extends TaskBase {
var id_dir = '/tmp/ic/' + Id; var id_dir = '/tmp/ic/' + 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]);
} // }
} }
} }
...@@ -375,9 +169,10 @@ class IcZipTask extends TaskBase { ...@@ -375,9 +169,10 @@ class IcZipTask 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) {
// 异步获取临时密钥 // 异步获取临时密钥
...@@ -394,8 +189,6 @@ class IcZipTask extends TaskBase { ...@@ -394,8 +189,6 @@ class IcZipTask 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');
...@@ -443,6 +236,31 @@ class IcZipTask extends TaskBase { ...@@ -443,6 +236,31 @@ class IcZipTask 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);
......
...@@ -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: begion, /* 必须 */ Region: region, /* 必须 */
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);
......
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);
// });
...@@ -2,157 +2,160 @@ var childproc = require('child_process'); ...@@ -2,157 +2,160 @@ var childproc = require('child_process');
const util = require('util'); const util = require('util');
const exec = util.promisify(require('child_process').exec); const exec = util.promisify(require('child_process').exec);
const querystring = require('querystring'); const querystring = require('querystring');
var settings=require("../../config/settings"); var settings = require("../../config/settings");
class RestClient{ class RestClient {
constructor(){ constructor() {
this.cmdGetPattern = "curl {-G} -k -d '{data}' {url}"; this.cmdGetPattern = "curl {-G} -k -d '{data}' {url}";
this.cmdPostPattern="curl -k -H 'Content-type: application/json' -d '{data}' '{url}'"; this.cmdPostPattern = "curl -k -H 'Content-type: application/json' -d '{data}' '{url}'";
this.cmdPostPatternWithAK="curl -k -H 'Content-type: application/json' -H 'AccessKey:{ak}' -d '{data}' {url} -m 20000"; this.cmdPostPatternWithAK = "curl -k -H 'Content-type: application/json' -H 'AccessKey:{ak}' -d '{data}' {url} -m 20000";
this.cmdDownLoadFilePattern="curl -G -o {fileName} {url}"; this.cmdDownLoadFilePattern = "curl -G -o {fileName} {url}";
this.cmdPostPattern2="curl -k -H 'Content-type: application/x-www-form-urlencoded' -d '{data}' {url}"; this.cmdPostPattern2 = "curl -k -H 'Content-type: application/x-www-form-urlencoded' -d '{data}' {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}"; 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}";
// form-data形式post data参数类型 md5=2&data=1 // form-data形式post data参数类型 md5=2&data=1
this.cmdPostPattern5="curl -k --data '{data}' {url}"; this.cmdPostPattern5 = "curl -k --data '{data}' {url}";
} }
FetchGetCmd(subData, url) { FetchGetCmd(subData, url) {
var cmd = this.cmdGetPattern.replace(/\{\-G\}/g, "-G").replace( var cmd = this.cmdGetPattern.replace(/\{\-G\}/g, "-G").replace(
/\{data\}/g, subData).replace(/\{url\}/g, url); /\{data\}/g, subData).replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchPostCmd(subData, url) { FetchPostCmd(subData, url) {
var data=JSON.stringify(subData); var data = JSON.stringify(subData);
var cmd= this.cmdPostPattern.replace(/\{data\}/g, var cmd = this.cmdPostPattern.replace(/\{data\}/g,
data).replace(/\{url\}/g, url); data).replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchPostCmdWithAK(subData, url,acck) { FetchPostCmdWithAK(subData, url, acck) {
var data=JSON.stringify(subData); var data = JSON.stringify(subData);
var cmd= this.cmdPostPatternWithAK.replace(/\{data\}/g, var cmd = this.cmdPostPatternWithAK.replace(/\{data\}/g,
data).replace(/\{url\}/g, url).replace(/\{ak\}/g,acck); data).replace(/\{url\}/g, url).replace(/\{ak\}/g, acck);
return cmd; return cmd;
} }
FetchPostCmd2(subData, url) { FetchPostCmd2(subData, url) {
var data=subData; var data = subData;
var cmd= this.cmdPostPattern2.replace(/\{data\}/g, var cmd = this.cmdPostPattern2.replace(/\{data\}/g,
data).replace(/\{url\}/g, url); data).replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchPostCmd3(subData, url) { FetchPostCmd3(subData, url) {
var data=subData; var data = subData;
var cmd= this.cmdPostPattern3.replace(/\{data\}/g, var cmd = this.cmdPostPattern3.replace(/\{data\}/g,
data).replace(/\{url\}/g, url); data).replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchGetCmd3(url) { FetchGetCmd3(url) {
var cmd = this.cmdGetPattern3.replace(/\{\-G\}/g, "-G").replace(/\{url\}/g, url); var cmd = this.cmdGetPattern3.replace(/\{\-G\}/g, "-G").replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchPostCmd4(subData, url) { FetchPostCmd4(subData, url) {
var data=subData; var data = subData;
var cmd= this.cmdPostPattern4.replace(/\{data\}/g, var cmd = this.cmdPostPattern4.replace(/\{data\}/g,
data).replace(/\{url\}/g, url); data).replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchPostCmd5(subData, url) { FetchPostCmd5(subData, url) {
var data=subData; var data = subData;
var cmd= this.cmdPostPattern5.replace(/\{data\}/g, var cmd = this.cmdPostPattern5.replace(/\{data\}/g,
data).replace(/\{url\}/g, url); data).replace(/\{url\}/g, url);
return cmd; return cmd;
} }
FetchDownLoadCmd(outfname,url) { FetchDownLoadCmd(outfname, url) {
// console.log(this.cmdPattern); // console.log(this.cmdPattern);
var cmd = this.cmdDownLoadFilePattern.replace(/\{fileName\}/g, outfname).replace( var cmd = this.cmdDownLoadFilePattern.replace(/\{fileName\}/g, outfname).replace(
/\{url\}/g, url); /\{url\}/g, url);
return cmd; return cmd;
} }
async exec(cmd,options) { async exec(cmd, options) {
//await后面表达式返回的promise对象,是then的语法糖,await返回then函数的返回值 //await后面表达式返回的promise对象,是then的语法糖,await返回then函数的返回值
//异常需要try/catch自己捕获或外部catch捕获 //异常需要try/catch自己捕获或外部catch捕获
if(options){ if (options) {
const { stdout, stderr } = await exec(cmd,options); const { stdout, stderr } = await exec(cmd, options);
return { stdout, stderr }; return { stdout, stderr };
}else{ } else {
const { stdout, stderr } = await exec(cmd); const { stdout, stderr } = await exec(cmd);
return { stdout, stderr }; return { stdout, stderr };
} }
} }
async execDownload(url,outfname){
let cmd=this.FetchDownLoadCmd(outfname,url); async execDownload(url, outfname) {
var result=await this.exec(cmd); let cmd = this.FetchDownLoadCmd(outfname, url);
return result; var result = await this.exec(cmd);
} return result;
async execGet(subData, url){ }
let cmd=this.FetchGetCmd(subData,url); async execGet(subData, url) {
var result=await this.exec(cmd); let cmd = this.FetchGetCmd(subData, url);
return result; var result = await this.exec(cmd);
} return result;
async execGet2(subData, url){ }
var data=querystring.stringify(subData); async execGet2(subData, url) {
let cmd=this.FetchGetCmd(data,url); var data = querystring.stringify(subData);
var result=await this.exec(cmd); let cmd = this.FetchGetCmd(data, url);
return result; var result = await this.exec(cmd);
} return result;
async execPost(subData, url){ }
let cmd=this.FetchPostCmd(subData,url); async execPost(subData, url) {
var result=await this.exec(cmd,{ let cmd = this.FetchPostCmd(subData, url);
maxBuffer: 10000 * 1024 var result = await this.exec(cmd, {
}); maxBuffer: 10000 * 1024
return result; });
} return result;
async execPostWithAK(subData, url,ak){ }
let cmd=this.FetchPostCmdWithAK(subData,url,ak); async execPostWithAK(subData, url, ak) {
var result=await this.exec(cmd,{ let cmd = this.FetchPostCmdWithAK(subData, url, ak);
maxBuffer:1024*1024*100 var result = await this.exec(cmd, {
}); maxBuffer: 1024 * 1024 * 100
var rtn=result.stdout; });
if(rtn){ var rtn = result.stdout;
return JSON.parse(rtn); if (rtn) {
}else{ return JSON.parse(rtn);
return null; } else {
} return null;
} }
async execPost2(subData, url){ }
let cmd=this.FetchPostCmd2(subData,url); async execPost2(subData, url) {
console.log(cmd); let cmd = this.FetchPostCmd2(subData, url);
var result=await this.exec(cmd); console.log(cmd);
return result; var result = await this.exec(cmd);
} return result;
async execPost3(subData, url){ }
let cmd=this.FetchPostCmd3(subData,url); async execPost3(subData, url) {
console.log(cmd); // console.log("subData-----------------" + JSON.stringify(subData));
var result=await this.exec(cmd); let cmd = this.FetchPostCmd3(subData, url);
return result; console.log(cmd,"...............cmd3....................");
} var result = await this.exec(cmd);
async execGet3(url){ // console.log(result,"...............cmd3........result............");
let cmd=this.FetchGetCmd3(url); return result;
console.log("execGet3-----01"); }
console.log(cmd); async execGet3(url) {
var result=await this.exec(cmd); let cmd = this.FetchGetCmd3(url);
return result; console.log("execGet3-----01");
} console.log(cmd);
async execPostESignBao(subData, url){ var result = await this.exec(cmd);
let cmd=this.FetchPostCmd4(subData,url); return result;
console.log(cmd); }
var result=await this.exec(cmd); async execPostESignBao(subData, url) {
return result; let cmd = this.FetchPostCmd4(subData, url);
} console.log(cmd);
async execPostForm(subData, url){ var result = await this.exec(cmd);
let cmd=this.FetchPostCmd5(subData,url); return result;
console.log(cmd); }
var result=await this.exec(cmd); async execPostForm(subData, url) {
return result; let cmd = this.FetchPostCmd5(subData, url);
} console.log(cmd);
async execCustomPostESignBao(cmd){ var result = await this.exec(cmd);
console.log(cmd); return result;
var result=await this.exec(cmd); }
return result; async execCustomPostESignBao(cmd) {
} console.log(cmd);
test(){ var result = await this.exec(cmd);
console.log("hello"); return result;
} }
test() {
console.log("hello");
}
} }
module.exports=RestClient; module.exports = RestClient;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment