@things-factory/attachment-base 4.3.424 → 4.3.425

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.
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ATTACHMENT_PATH = exports.INVSTORAGE = exports.AWSCREDENTIAL = exports.AWBSTORAGE = exports.STORAGE = void 0;
3
+ exports.ATTACHMENT_PATH = exports.INVSTORAGE = exports.AWBSTORAGE = exports.STORAGE = void 0;
4
4
  const env_1 = require("@things-factory/env");
5
5
  exports.STORAGE = env_1.config.get('storage');
6
6
  exports.AWBSTORAGE = env_1.config.get('awbFileStorage');
7
- exports.AWSCREDENTIAL = env_1.config.get('awsCredential');
8
7
  exports.INVSTORAGE = env_1.config.get('invoiceFileStorage');
9
8
  exports.ATTACHMENT_PATH = env_1.config.get('attachmentPath', 'attachment');
10
9
  //# sourceMappingURL=attachment-const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-const.js","sourceRoot":"","sources":["../server/attachment-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,OAAO,GAAQ,YAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACpC,QAAA,UAAU,GAAQ,YAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAC9C,QAAA,aAAa,GAAQ,YAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAChD,QAAA,UAAU,GAAQ,YAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAChD,QAAA,eAAe,GAAW,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA"}
1
+ {"version":3,"file":"attachment-const.js","sourceRoot":"","sources":["../server/attachment-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,OAAO,GAAQ,YAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACpC,QAAA,UAAU,GAAQ,YAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAC9C,QAAA,UAAU,GAAQ,YAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAChD,QAAA,eAAe,GAAW,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA"}
@@ -1,43 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_s3_1 = require("@aws-sdk/client-s3");
4
- const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
5
4
  const lib_storage_1 = require("@aws-sdk/lib-storage");
6
5
  const env_1 = require("@things-factory/env");
7
6
  const attachment_const_1 = require("./attachment-const");
8
7
  if (attachment_const_1.AWBSTORAGE && attachment_const_1.AWBSTORAGE.type == 's3') {
9
- const getAWSSecret = async () => {
10
- const secretManager = new client_secrets_manager_1.SecretsManagerClient({ region: attachment_const_1.AWSCREDENTIAL.region });
11
- const secretManagerParams = {
12
- SecretId: attachment_const_1.AWSCREDENTIAL.secretName,
13
- VersionStage: 'AWSCURRENT'
14
- };
15
- const command = new client_secrets_manager_1.GetSecretValueCommand(secretManagerParams);
16
- try {
17
- const data = await secretManager.send(command);
18
- const dataSecretString = data.SecretString;
19
- if (dataSecretString) {
20
- const secretString = JSON.parse(dataSecretString);
21
- return { accessKeyId: secretString.accessKeyId, secretAccessKey: secretString.secretAccessKey };
22
- }
23
- else {
24
- return null;
25
- }
26
- }
27
- catch (error) {
28
- console.log(`[SFTP Get Secret]: ${error}`);
29
- }
30
- };
8
+ const client = new client_s3_1.S3Client({
9
+ credentials: {
10
+ accessKeyId: attachment_const_1.AWBSTORAGE.accessKeyId,
11
+ secretAccessKey: attachment_const_1.AWBSTORAGE.secretAccessKey
12
+ },
13
+ region: attachment_const_1.AWBSTORAGE.region
14
+ });
31
15
  /* upload file */
32
16
  attachment_const_1.AWBSTORAGE.uploadFile = async ({ stream, filename }) => {
33
- const { accessKeyId, secretAccessKey } = await getAWSSecret();
34
- const client = new client_s3_1.S3Client({
35
- credentials: {
36
- accessKeyId: accessKeyId,
37
- secretAccessKey: secretAccessKey
38
- },
39
- region: attachment_const_1.AWSCREDENTIAL.region
40
- });
41
17
  const upload = new lib_storage_1.Upload({
42
18
  client,
43
19
  params: {
@@ -1 +1 @@
1
- {"version":3,"file":"awb-storage-s3.js","sourceRoot":"","sources":["../server/awb-storage-s3.ts"],"names":[],"mappings":";;AAAA,kDAA6C;AAC7C,4EAA6F;AAC7F,sDAA6C;AAC7C,6CAA4C;AAE5C,yDAA8D;AAE9D,IAAI,6BAAU,IAAI,6BAAU,CAAC,IAAI,IAAI,IAAI,EAAE;IACzC,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,MAAM,aAAa,GAAG,IAAI,6CAAoB,CAAC,EAAE,MAAM,EAAE,gCAAa,CAAC,MAAM,EAAE,CAAC,CAAA;QAChF,MAAM,mBAAmB,GAAG;YAC1B,QAAQ,EAAE,gCAAa,CAAC,UAAU;YAClC,YAAY,EAAE,YAAY;SAC3B,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,8CAAqB,CAAC,mBAAmB,CAAC,CAAA;QAC9D,IAAI;YACF,MAAM,IAAI,GAAQ,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnD,MAAM,gBAAgB,GAAQ,IAAI,CAAC,YAAY,CAAA;YAC/C,IAAI,gBAAgB,EAAE;gBACpB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBAEjD,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE,CAAA;aAChG;iBAAM;gBACL,OAAO,IAAI,CAAA;aACZ;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;SAC3C;IACH,CAAC,CAAA;IAED,iBAAiB;IACjB,6BAAU,CAAC,UAAU,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,YAAY,EAAE,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAI,oBAAQ,CAAC;YAC1B,WAAW,EAAE;gBACX,WAAW,EAAE,WAAW;gBACxB,eAAe,EAAE,eAAe;aACjC;YACD,MAAM,EAAE,gCAAa,CAAC,MAAM;SAC7B,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;YACxB,MAAM;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,6BAAU,CAAC,UAAU;gBAC7B,GAAG,EAAE,GAAG,QAAQ,MAAM;gBACtB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,iBAAiB;aAC/B;SACF,CAAC,CAAA;QAEF,IAAI,MAAM,CAAA;QACV,IAAI,GAAG,CAAA;QACP,IAAI;YACF,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAQ,CAAA;YACrC,GAAG,GAAG,WAAW,6BAAU,CAAC,UAAU,OAAO,6BAAU,CAAC,MAAM,kBAAkB,QAAQ,MAAM,CAAA;SAC/F;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;QAED,OAAO;YACL,MAAM;YACN,GAAG;SACJ,CAAA;IACH,CAAC,CAAA;IAED,YAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;CACxD"}
1
+ {"version":3,"file":"awb-storage-s3.js","sourceRoot":"","sources":["../server/awb-storage-s3.ts"],"names":[],"mappings":";;AAAA,kDAA6C;AAC7C,sDAA6C;AAC7C,6CAA4C;AAE5C,yDAA+C;AAE/C,IAAI,6BAAU,IAAI,6BAAU,CAAC,IAAI,IAAI,IAAI,EAAE;IACzC,MAAM,MAAM,GAAG,IAAI,oBAAQ,CAAC;QAC1B,WAAW,EAAE;YACX,WAAW,EAAE,6BAAU,CAAC,WAAW;YACnC,eAAe,EAAE,6BAAU,CAAC,eAAe;SAC5C;QACD,MAAM,EAAE,6BAAU,CAAC,MAAM;KAC1B,CAAC,CAAA;IAEF,iBAAiB;IACjB,6BAAU,CAAC,UAAU,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC;YACxB,MAAM;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,6BAAU,CAAC,UAAU;gBAC7B,GAAG,EAAE,GAAG,QAAQ,MAAM;gBACtB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,iBAAiB;aAC/B;SACF,CAAC,CAAA;QAEF,IAAI,MAAM,CAAA;QACV,IAAI,GAAG,CAAA;QACP,IAAI;YACF,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAQ,CAAA;YACrC,GAAG,GAAG,WAAW,6BAAU,CAAC,UAAU,OAAO,6BAAU,CAAC,MAAM,kBAAkB,QAAQ,MAAM,CAAA;SAC/F;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;QAED,OAAO;YACL,MAAM;YACN,GAAG;SACJ,CAAA;IACH,CAAC,CAAA;IAED,YAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;CACxD"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const uuid_1 = require("uuid");
4
4
  const client_s3_1 = require("@aws-sdk/client-s3");
5
- const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
6
5
  const lib_storage_1 = require("@aws-sdk/lib-storage");
7
6
  const s3_presigned_post_1 = require("@aws-sdk/s3-presigned-post");
8
7
  const env_1 = require("@things-factory/env");
@@ -10,28 +9,13 @@ const attachment_const_1 = require("./attachment-const");
10
9
  const mime = require('mime');
11
10
  const { fs } = require('memfs');
12
11
  if (attachment_const_1.STORAGE && attachment_const_1.STORAGE.type == 's3') {
13
- const getAWSSecret = async () => {
14
- const secretManager = new client_secrets_manager_1.SecretsManagerClient({ region: attachment_const_1.AWSCREDENTIAL.region });
15
- const secretManagerParams = {
16
- SecretId: attachment_const_1.AWSCREDENTIAL.secretName,
17
- VersionStage: 'AWSCURRENT'
18
- };
19
- const command = new client_secrets_manager_1.GetSecretValueCommand(secretManagerParams);
20
- try {
21
- const data = await secretManager.send(command);
22
- const dataSecretString = data.SecretString;
23
- if (dataSecretString) {
24
- const secretString = JSON.parse(dataSecretString);
25
- return { accessKeyId: secretString.accessKeyId, secretAccessKey: secretString.secretAccessKey };
26
- }
27
- else {
28
- return null;
29
- }
30
- }
31
- catch (error) {
32
- console.log(`[SFTP Get Secret]: ${error}`);
33
- }
34
- };
12
+ const client = new client_s3_1.S3Client({
13
+ credentials: {
14
+ accessKeyId: attachment_const_1.STORAGE.accessKeyId,
15
+ secretAccessKey: attachment_const_1.STORAGE.secretAccessKey
16
+ },
17
+ region: attachment_const_1.STORAGE.region
18
+ });
35
19
  const streamToBuffer = (stream) => new Promise((resolve, reject) => {
36
20
  const chunks = [];
37
21
  stream.on('data', chunk => chunks.push(chunk));
@@ -44,14 +28,6 @@ if (attachment_const_1.STORAGE && attachment_const_1.STORAGE.type == 's3') {
44
28
  const ext = filename.split('.').pop();
45
29
  const key = ext ? `${id}.${ext}` : id;
46
30
  var size = 0;
47
- const { accessKeyId, secretAccessKey } = await getAWSSecret();
48
- const client = new client_s3_1.S3Client({
49
- credentials: {
50
- accessKeyId: accessKeyId,
51
- secretAccessKey: secretAccessKey
52
- },
53
- region: attachment_const_1.AWSCREDENTIAL.region
54
- });
55
31
  const upload = new lib_storage_1.Upload({
56
32
  client,
57
33
  params: {
@@ -69,14 +45,6 @@ if (attachment_const_1.STORAGE && attachment_const_1.STORAGE.type == 's3') {
69
45
  };
70
46
  };
71
47
  attachment_const_1.STORAGE.deleteFile = async (path) => {
72
- const { accessKeyId, secretAccessKey } = await getAWSSecret();
73
- const client = new client_s3_1.S3Client({
74
- credentials: {
75
- accessKeyId: accessKeyId,
76
- secretAccessKey: secretAccessKey
77
- },
78
- region: attachment_const_1.AWSCREDENTIAL.region
79
- });
80
48
  const command = new client_s3_1.DeleteObjectCommand({
81
49
  Bucket: attachment_const_1.STORAGE.bucketName,
82
50
  Key: path
@@ -85,14 +53,6 @@ if (attachment_const_1.STORAGE && attachment_const_1.STORAGE.type == 's3') {
85
53
  };
86
54
  /* TODO Streaming to Streaming 으로 구현하라. */
87
55
  attachment_const_1.STORAGE.sendFile = async (context, attachment, next) => {
88
- const { accessKeyId, secretAccessKey } = await getAWSSecret();
89
- const client = new client_s3_1.S3Client({
90
- credentials: {
91
- accessKeyId: accessKeyId,
92
- secretAccessKey: secretAccessKey
93
- },
94
- region: attachment_const_1.AWSCREDENTIAL.region
95
- });
96
56
  const result = await client.send(new client_s3_1.GetObjectCommand({
97
57
  Bucket: attachment_const_1.STORAGE.bucketName,
98
58
  Key: attachment
@@ -107,14 +67,6 @@ if (attachment_const_1.STORAGE && attachment_const_1.STORAGE.type == 's3') {
107
67
  context.body = result.Body;
108
68
  };
109
69
  attachment_const_1.STORAGE.readFile = async (attachment, encoding) => {
110
- const { accessKeyId, secretAccessKey } = await getAWSSecret();
111
- const client = new client_s3_1.S3Client({
112
- credentials: {
113
- accessKeyId: accessKeyId,
114
- secretAccessKey: secretAccessKey
115
- },
116
- region: attachment_const_1.AWSCREDENTIAL.region
117
- });
118
70
  /*
119
71
  * refered to
120
72
  * https://transang.me/modern-fetch-and-how-to-get-buffer-output-from-aws-sdk-v3-getobjectcommand/#the-body-type
@@ -135,14 +87,6 @@ if (attachment_const_1.STORAGE && attachment_const_1.STORAGE.type == 's3') {
135
87
  attachment_const_1.STORAGE.generateUploadURL = async (type) => {
136
88
  const expiresInMinutes = 1;
137
89
  const id = (0, uuid_1.v4)();
138
- const { accessKeyId, secretAccessKey } = await getAWSSecret();
139
- const client = new client_s3_1.S3Client({
140
- credentials: {
141
- accessKeyId: accessKeyId,
142
- secretAccessKey: secretAccessKey
143
- },
144
- region: attachment_const_1.AWSCREDENTIAL.region
145
- });
146
90
  return await (0, s3_presigned_post_1.createPresignedPost)(client, {
147
91
  Bucket: attachment_const_1.STORAGE.bucketName,
148
92
  Key: id,
@@ -1 +1 @@
1
- {"version":3,"file":"storage-s3.js","sourceRoot":"","sources":["../server/storage-s3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-s3.js","sourceRoot":"","sources":["../server/storage-s3.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/attachment-base",
3
- "version": "4.3.424",
3
+ "version": "4.3.425",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,15 +24,14 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@aws-sdk/client-s3": "^3.46.0",
27
- "@aws-sdk/client-secrets-manager": "^3.46.0",
28
27
  "@aws-sdk/lib-storage": "^3.46.0",
29
28
  "@aws-sdk/s3-presigned-post": "^3.46.0",
30
29
  "@koa/multer": "^3.0.0",
31
- "@things-factory/auth-base": "^4.3.424",
30
+ "@things-factory/auth-base": "^4.3.425",
32
31
  "@things-factory/env": "^4.3.381",
33
32
  "memfs": "^3.0.1",
34
33
  "mime": "^2.4.4",
35
34
  "multer": "^1.3.0"
36
35
  },
37
- "gitHead": "0c04dd6934c7eb335fc5ad2dd55172b5e79cdca7"
36
+ "gitHead": "43a4d63f2d8411e2f7446c3627dbf8acafbd3c44"
38
37
  }
@@ -2,6 +2,5 @@ import { config } from '@things-factory/env'
2
2
 
3
3
  export var STORAGE: any = config.get('storage')
4
4
  export var AWBSTORAGE: any = config.get('awbFileStorage')
5
- export var AWSCREDENTIAL: any = config.get('awsCredential')
6
5
  export var INVSTORAGE: any = config.get('invoiceFileStorage')
7
6
  export const ATTACHMENT_PATH: string = config.get('attachmentPath', 'attachment')
@@ -1,44 +1,20 @@
1
1
  import { S3Client } from '@aws-sdk/client-s3'
2
- import { GetSecretValueCommand, SecretsManagerClient } from '@aws-sdk/client-secrets-manager'
3
2
  import { Upload } from '@aws-sdk/lib-storage'
4
3
  import { logger } from '@things-factory/env'
5
4
 
6
- import { AWBSTORAGE, AWSCREDENTIAL } from './attachment-const'
5
+ import { AWBSTORAGE } from './attachment-const'
7
6
 
8
7
  if (AWBSTORAGE && AWBSTORAGE.type == 's3') {
9
- const getAWSSecret = async () => {
10
- const secretManager = new SecretsManagerClient({ region: AWSCREDENTIAL.region })
11
- const secretManagerParams = {
12
- SecretId: AWSCREDENTIAL.secretName,
13
- VersionStage: 'AWSCURRENT'
14
- }
15
- const command = new GetSecretValueCommand(secretManagerParams)
16
- try {
17
- const data: any = await secretManager.send(command)
18
- const dataSecretString: any = data.SecretString
19
- if (dataSecretString) {
20
- const secretString = JSON.parse(dataSecretString)
21
-
22
- return { accessKeyId: secretString.accessKeyId, secretAccessKey: secretString.secretAccessKey }
23
- } else {
24
- return null
25
- }
26
- } catch (error) {
27
- console.log(`[SFTP Get Secret]: ${error}`)
28
- }
29
- }
8
+ const client = new S3Client({
9
+ credentials: {
10
+ accessKeyId: AWBSTORAGE.accessKeyId,
11
+ secretAccessKey: AWBSTORAGE.secretAccessKey
12
+ },
13
+ region: AWBSTORAGE.region
14
+ })
30
15
 
31
16
  /* upload file */
32
17
  AWBSTORAGE.uploadFile = async ({ stream, filename }) => {
33
- const { accessKeyId, secretAccessKey } = await getAWSSecret()
34
- const client = new S3Client({
35
- credentials: {
36
- accessKeyId: accessKeyId,
37
- secretAccessKey: secretAccessKey
38
- },
39
- region: AWSCREDENTIAL.region
40
- })
41
-
42
18
  const upload = new Upload({
43
19
  client,
44
20
  params: {
@@ -2,38 +2,23 @@ import type { Readable } from 'stream'
2
2
  import { v4 as uuidv4 } from 'uuid'
3
3
 
4
4
  import { DeleteObjectCommand, GetObjectCommand, GetObjectCommandInput, S3Client } from '@aws-sdk/client-s3'
5
- import { GetSecretValueCommand, SecretsManagerClient } from '@aws-sdk/client-secrets-manager'
6
5
  import { Upload } from '@aws-sdk/lib-storage'
7
6
  import { createPresignedPost } from '@aws-sdk/s3-presigned-post'
8
7
  import { logger } from '@things-factory/env'
9
8
 
10
- import { AWSCREDENTIAL, STORAGE } from './attachment-const'
9
+ import { STORAGE } from './attachment-const'
11
10
 
12
11
  const mime = require('mime')
13
12
  const { fs } = require('memfs')
14
13
 
15
14
  if (STORAGE && STORAGE.type == 's3') {
16
- const getAWSSecret = async () => {
17
- const secretManager = new SecretsManagerClient({ region: AWSCREDENTIAL.region })
18
- const secretManagerParams = {
19
- SecretId: AWSCREDENTIAL.secretName,
20
- VersionStage: 'AWSCURRENT'
21
- }
22
- const command = new GetSecretValueCommand(secretManagerParams)
23
- try {
24
- const data: any = await secretManager.send(command)
25
- const dataSecretString: any = data.SecretString
26
- if (dataSecretString) {
27
- const secretString = JSON.parse(dataSecretString)
28
-
29
- return { accessKeyId: secretString.accessKeyId, secretAccessKey: secretString.secretAccessKey }
30
- } else {
31
- return null
32
- }
33
- } catch (error) {
34
- console.log(`[SFTP Get Secret]: ${error}`)
35
- }
36
- }
15
+ const client = new S3Client({
16
+ credentials: {
17
+ accessKeyId: STORAGE.accessKeyId,
18
+ secretAccessKey: STORAGE.secretAccessKey
19
+ },
20
+ region: STORAGE.region
21
+ })
37
22
 
38
23
  const streamToBuffer = (stream: Readable) =>
39
24
  new Promise<Buffer>((resolve, reject) => {
@@ -50,15 +35,6 @@ if (STORAGE && STORAGE.type == 's3') {
50
35
  const key = ext ? `${id}.${ext}` : id
51
36
  var size: number = 0
52
37
 
53
- const { accessKeyId, secretAccessKey } = await getAWSSecret()
54
- const client = new S3Client({
55
- credentials: {
56
- accessKeyId: accessKeyId,
57
- secretAccessKey: secretAccessKey
58
- },
59
- region: AWSCREDENTIAL.region
60
- })
61
-
62
38
  const upload = new Upload({
63
39
  client,
64
40
  params: {
@@ -78,15 +54,6 @@ if (STORAGE && STORAGE.type == 's3') {
78
54
  }
79
55
 
80
56
  STORAGE.deleteFile = async (path: string) => {
81
- const { accessKeyId, secretAccessKey } = await getAWSSecret()
82
- const client = new S3Client({
83
- credentials: {
84
- accessKeyId: accessKeyId,
85
- secretAccessKey: secretAccessKey
86
- },
87
- region: AWSCREDENTIAL.region
88
- })
89
-
90
57
  const command = new DeleteObjectCommand({
91
58
  Bucket: STORAGE.bucketName,
92
59
  Key: path
@@ -97,15 +64,6 @@ if (STORAGE && STORAGE.type == 's3') {
97
64
 
98
65
  /* TODO Streaming to Streaming 으로 구현하라. */
99
66
  STORAGE.sendFile = async (context, attachment, next) => {
100
- const { accessKeyId, secretAccessKey } = await getAWSSecret()
101
- const client = new S3Client({
102
- credentials: {
103
- accessKeyId: accessKeyId,
104
- secretAccessKey: secretAccessKey
105
- },
106
- region: AWSCREDENTIAL.region
107
- })
108
-
109
67
  const result = await client.send(
110
68
  new GetObjectCommand({
111
69
  Bucket: STORAGE.bucketName,
@@ -125,15 +83,6 @@ if (STORAGE && STORAGE.type == 's3') {
125
83
  }
126
84
 
127
85
  STORAGE.readFile = async (attachment: string, encoding: string) => {
128
- const { accessKeyId, secretAccessKey } = await getAWSSecret()
129
- const client = new S3Client({
130
- credentials: {
131
- accessKeyId: accessKeyId,
132
- secretAccessKey: secretAccessKey
133
- },
134
- region: AWSCREDENTIAL.region
135
- })
136
-
137
86
  /*
138
87
  * refered to
139
88
  * https://transang.me/modern-fetch-and-how-to-get-buffer-output-from-aws-sdk-v3-getobjectcommand/#the-body-type
@@ -160,15 +109,6 @@ if (STORAGE && STORAGE.type == 's3') {
160
109
  const expiresInMinutes = 1
161
110
  const id = uuidv4()
162
111
 
163
- const { accessKeyId, secretAccessKey } = await getAWSSecret()
164
- const client = new S3Client({
165
- credentials: {
166
- accessKeyId: accessKeyId,
167
- secretAccessKey: secretAccessKey
168
- },
169
- region: AWSCREDENTIAL.region
170
- })
171
-
172
112
  return await createPresignedPost(client, {
173
113
  Bucket: STORAGE.bucketName,
174
114
  Key: id,