@things-factory/integration-sftp 4.3.419 → 4.3.424
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/dist-server/sftp-const.js +2 -1
- package/dist-server/sftp-const.js.map +1 -1
- package/dist-server/sftp-s3.js +56 -37
- package/dist-server/sftp-s3.js.map +1 -1
- package/package.json +5 -5
- package/server/sftp-const.ts +1 -0
- package/server/sftp-s3.ts +59 -40
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BACKUPPATH = exports.SNFAILEDDATAPATH = exports.SNSUCCESSDATAPATH = exports.SNSUBMITDATAPATH = exports.COMPLETEFAILEDDATAPATH = exports.COMPLETESUCCESSDATAPATH = exports.COMPLETEDATAPATH = exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.SFTPFILESTORAGE = void 0;
|
|
3
|
+
exports.BACKUPPATH = exports.SNFAILEDDATAPATH = exports.SNSUCCESSDATAPATH = exports.SNSUBMITDATAPATH = exports.COMPLETEFAILEDDATAPATH = exports.COMPLETESUCCESSDATAPATH = exports.COMPLETEDATAPATH = exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.AWSCREDENTIAL = exports.SFTPFILESTORAGE = void 0;
|
|
4
4
|
const env_1 = require("@things-factory/env");
|
|
5
5
|
exports.SFTPFILESTORAGE = env_1.config.get('sftpFileStorage');
|
|
6
|
+
exports.AWSCREDENTIAL = env_1.config.get('awsCredential');
|
|
6
7
|
exports.SUBMITDATAPATH = '/sob/data';
|
|
7
8
|
exports.SUCCESSDATAPATH = '/sob/success';
|
|
8
9
|
exports.FAILEDDATAPATH = '/sob/failed';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp-const.js","sourceRoot":"","sources":["../server/sftp-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,eAAe,GAAQ,YAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,QAAA,cAAc,GAAW,WAAW,CAAA;AACpC,QAAA,eAAe,GAAW,cAAc,CAAA;AACxC,QAAA,cAAc,GAAW,aAAa,CAAA;AACtC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,uBAAuB,GAAW,aAAa,CAAA;AAC/C,QAAA,sBAAsB,GAAW,YAAY,CAAA;AAC7C,QAAA,gBAAgB,GAAW,UAAU,CAAA;AACrC,QAAA,iBAAiB,GAAW,aAAa,CAAA;AACzC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,UAAU,GAAW,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"sftp-const.js","sourceRoot":"","sources":["../server/sftp-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,eAAe,GAAQ,YAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,QAAA,aAAa,GAAQ,YAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAChD,QAAA,cAAc,GAAW,WAAW,CAAA;AACpC,QAAA,eAAe,GAAW,cAAc,CAAA;AACxC,QAAA,cAAc,GAAW,aAAa,CAAA;AACtC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,uBAAuB,GAAW,aAAa,CAAA;AAC/C,QAAA,sBAAsB,GAAW,YAAY,CAAA;AAC7C,QAAA,gBAAgB,GAAW,UAAU,CAAA;AACrC,QAAA,iBAAiB,GAAW,aAAa,CAAA;AACzC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,UAAU,GAAW,WAAW,CAAA"}
|
package/dist-server/sftp-s3.js
CHANGED
|
@@ -11,43 +11,47 @@ const { PassThrough } = require('stream');
|
|
|
11
11
|
const path = require('path');
|
|
12
12
|
const { fs } = require('memfs');
|
|
13
13
|
if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// }
|
|
14
|
+
const getAWSSecret = async () => {
|
|
15
|
+
let accessKeyId;
|
|
16
|
+
let secretAccessKey;
|
|
17
|
+
const secretManager = new aws_sdk_1.default.SecretsManager({ region: sftp_const_1.AWSCREDENTIAL.region });
|
|
18
|
+
try {
|
|
19
|
+
const secretManagerParams = {
|
|
20
|
+
SecretId: sftp_const_1.AWSCREDENTIAL.secretName,
|
|
21
|
+
VersionStage: 'AWSCURRENT'
|
|
22
|
+
};
|
|
23
|
+
await secretManager
|
|
24
|
+
.getSecretValue(secretManagerParams, function (err, data) {
|
|
25
|
+
if (err) {
|
|
26
|
+
console.log(err, err.stack);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const dataSecretString = data.SecretString;
|
|
30
|
+
if (dataSecretString) {
|
|
31
|
+
const secretString = JSON.parse(dataSecretString);
|
|
32
|
+
accessKeyId = secretString.accessKeyId;
|
|
33
|
+
secretAccessKey = secretString.secretAccessKey;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
.promise();
|
|
38
|
+
if (accessKeyId && secretAccessKey) {
|
|
39
|
+
return { accessKeyId: accessKeyId, secretAccessKey: secretAccessKey };
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
console.log(`[SFTP Get Secret]: ${e}`);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
50
49
|
sftp_const_1.SFTPFILESTORAGE.readFolders = async (params, encoding) => {
|
|
50
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret();
|
|
51
|
+
const S3 = new aws_sdk_1.default.S3({
|
|
52
|
+
accessKeyId: accessKeyId,
|
|
53
|
+
secretAccessKey: secretAccessKey
|
|
54
|
+
});
|
|
51
55
|
let S3params = {
|
|
52
56
|
Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
|
|
53
57
|
Delimiter: '/',
|
|
@@ -58,6 +62,11 @@ if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
|
|
|
58
62
|
return body;
|
|
59
63
|
};
|
|
60
64
|
sftp_const_1.SFTPFILESTORAGE.readFile = async (path, encoding) => {
|
|
65
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret();
|
|
66
|
+
const S3 = new aws_sdk_1.default.S3({
|
|
67
|
+
accessKeyId: accessKeyId,
|
|
68
|
+
secretAccessKey: secretAccessKey
|
|
69
|
+
});
|
|
61
70
|
const result = await S3.getObject({
|
|
62
71
|
Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
|
|
63
72
|
Key: path
|
|
@@ -69,6 +78,11 @@ if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
|
|
|
69
78
|
return body;
|
|
70
79
|
};
|
|
71
80
|
sftp_const_1.SFTPFILESTORAGE.moveFile = async (path, encoding) => {
|
|
81
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret();
|
|
82
|
+
const S3 = new aws_sdk_1.default.S3({
|
|
83
|
+
accessKeyId: accessKeyId,
|
|
84
|
+
secretAccessKey: secretAccessKey
|
|
85
|
+
});
|
|
72
86
|
try {
|
|
73
87
|
const copyResult = await S3.copyObject({
|
|
74
88
|
Bucket: sftp_const_1.SFTPFILESTORAGE.bucketName,
|
|
@@ -92,7 +106,12 @@ if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
|
|
|
92
106
|
return true;
|
|
93
107
|
};
|
|
94
108
|
/* upload file */
|
|
95
|
-
sftp_const_1.SFTPFILESTORAGE.uploadFile = ({ stream, filename, uploadPath }) => {
|
|
109
|
+
sftp_const_1.SFTPFILESTORAGE.uploadFile = async ({ stream, filename, uploadPath }) => {
|
|
110
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret();
|
|
111
|
+
const S3 = new aws_sdk_1.default.S3({
|
|
112
|
+
accessKeyId: accessKeyId,
|
|
113
|
+
secretAccessKey: secretAccessKey
|
|
114
|
+
});
|
|
96
115
|
const id = (0, uuid_1.v4)();
|
|
97
116
|
let size = 0;
|
|
98
117
|
return new Promise((resolve, reject) => stream
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":";;;;;AAAA,sDAAyB;AACzB,+BAAmC;AAEnC,6CAA4C;AAE5C,
|
|
1
|
+
{"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/integration-sftp",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.424",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@things-factory/auth-base": "^4.3.
|
|
27
|
-
"@things-factory/biz-base": "^4.3.
|
|
26
|
+
"@things-factory/auth-base": "^4.3.424",
|
|
27
|
+
"@things-factory/biz-base": "^4.3.424",
|
|
28
28
|
"@things-factory/env": "^4.3.381",
|
|
29
|
-
"@things-factory/integration-fulfillment": "^4.3.
|
|
29
|
+
"@things-factory/integration-fulfillment": "^4.3.424",
|
|
30
30
|
"@things-factory/shell": "^4.3.381",
|
|
31
31
|
"aws-sdk": "^2.960.0",
|
|
32
32
|
"xml-js": "^1.6.11"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "0c04dd6934c7eb335fc5ad2dd55172b5e79cdca7"
|
|
35
35
|
}
|
package/server/sftp-const.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { config } from '@things-factory/env'
|
|
2
2
|
|
|
3
3
|
export var SFTPFILESTORAGE: any = config.get('sftpFileStorage')
|
|
4
|
+
export var AWSCREDENTIAL: any = config.get('awsCredential')
|
|
4
5
|
export var SUBMITDATAPATH: string = '/sob/data'
|
|
5
6
|
export var SUCCESSDATAPATH: string = '/sob/success'
|
|
6
7
|
export var FAILEDDATAPATH: string = '/sob/failed'
|
package/server/sftp-s3.ts
CHANGED
|
@@ -3,53 +3,54 @@ import { v4 as uuidv4 } from 'uuid'
|
|
|
3
3
|
|
|
4
4
|
import { logger } from '@things-factory/env'
|
|
5
5
|
|
|
6
|
-
import { SFTPFILESTORAGE } from './sftp-const'
|
|
6
|
+
import { AWSCREDENTIAL, SFTPFILESTORAGE } from './sftp-const'
|
|
7
7
|
|
|
8
8
|
const { PassThrough } = require('stream')
|
|
9
9
|
const path = require('path')
|
|
10
10
|
const { fs } = require('memfs')
|
|
11
11
|
|
|
12
12
|
if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// }
|
|
47
|
-
// } catch (e) {
|
|
48
|
-
// console.log(`[SFTP Get Secret]: ${e}`)
|
|
49
|
-
// }
|
|
50
|
-
// }
|
|
13
|
+
const getAWSSecret = async () => {
|
|
14
|
+
let accessKeyId
|
|
15
|
+
let secretAccessKey
|
|
16
|
+
const secretManager = new AWS.SecretsManager({ region: AWSCREDENTIAL.region })
|
|
17
|
+
try {
|
|
18
|
+
const secretManagerParams = {
|
|
19
|
+
SecretId: AWSCREDENTIAL.secretName,
|
|
20
|
+
VersionStage: 'AWSCURRENT'
|
|
21
|
+
}
|
|
22
|
+
await secretManager
|
|
23
|
+
.getSecretValue(secretManagerParams, function (err, data) {
|
|
24
|
+
if (err) {
|
|
25
|
+
console.log(err, err.stack)
|
|
26
|
+
} else {
|
|
27
|
+
const dataSecretString: any = data.SecretString
|
|
28
|
+
if (dataSecretString) {
|
|
29
|
+
const secretString = JSON.parse(dataSecretString)
|
|
30
|
+
accessKeyId = secretString.accessKeyId
|
|
31
|
+
secretAccessKey = secretString.secretAccessKey
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
.promise()
|
|
36
|
+
|
|
37
|
+
if (accessKeyId && secretAccessKey) {
|
|
38
|
+
return { accessKeyId: accessKeyId, secretAccessKey: secretAccessKey }
|
|
39
|
+
} else {
|
|
40
|
+
return null
|
|
41
|
+
}
|
|
42
|
+
} catch (e) {
|
|
43
|
+
console.log(`[SFTP Get Secret]: ${e}`)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
51
46
|
|
|
52
47
|
SFTPFILESTORAGE.readFolders = async (params, encoding) => {
|
|
48
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret()
|
|
49
|
+
const S3 = new AWS.S3({
|
|
50
|
+
accessKeyId: accessKeyId,
|
|
51
|
+
secretAccessKey: secretAccessKey
|
|
52
|
+
})
|
|
53
|
+
|
|
53
54
|
let S3params = {
|
|
54
55
|
Bucket: SFTPFILESTORAGE.bucketName,
|
|
55
56
|
Delimiter: '/',
|
|
@@ -64,6 +65,12 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
SFTPFILESTORAGE.readFile = async (path, encoding) => {
|
|
68
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret()
|
|
69
|
+
const S3 = new AWS.S3({
|
|
70
|
+
accessKeyId: accessKeyId,
|
|
71
|
+
secretAccessKey: secretAccessKey
|
|
72
|
+
})
|
|
73
|
+
|
|
67
74
|
const result = await S3.getObject({
|
|
68
75
|
Bucket: SFTPFILESTORAGE.bucketName,
|
|
69
76
|
Key: path
|
|
@@ -79,6 +86,12 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
|
|
|
79
86
|
}
|
|
80
87
|
|
|
81
88
|
SFTPFILESTORAGE.moveFile = async (path, encoding) => {
|
|
89
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret()
|
|
90
|
+
const S3 = new AWS.S3({
|
|
91
|
+
accessKeyId: accessKeyId,
|
|
92
|
+
secretAccessKey: secretAccessKey
|
|
93
|
+
})
|
|
94
|
+
|
|
82
95
|
try {
|
|
83
96
|
const copyResult = await S3.copyObject({
|
|
84
97
|
Bucket: SFTPFILESTORAGE.bucketName,
|
|
@@ -104,7 +117,13 @@ if (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {
|
|
|
104
117
|
}
|
|
105
118
|
|
|
106
119
|
/* upload file */
|
|
107
|
-
SFTPFILESTORAGE.uploadFile = ({ stream, filename, uploadPath }) => {
|
|
120
|
+
SFTPFILESTORAGE.uploadFile = async ({ stream, filename, uploadPath }) => {
|
|
121
|
+
const { accessKeyId, secretAccessKey } = await getAWSSecret()
|
|
122
|
+
const S3 = new AWS.S3({
|
|
123
|
+
accessKeyId: accessKeyId,
|
|
124
|
+
secretAccessKey: secretAccessKey
|
|
125
|
+
})
|
|
126
|
+
|
|
108
127
|
const id = uuidv4()
|
|
109
128
|
let size: number = 0
|
|
110
129
|
|