suanpan_node_sdk 2.0.10 → 2.1.0-beta

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,12 +1,14 @@
1
1
  /// <reference types="node" />
2
- import * as Minio from 'minio';
3
- import type { ObjectItem } from '../../types';
2
+ import type { IObjectStorage } from './objectStorage';
4
3
  import type { Readable as ReadableStream } from 'stream';
5
- import { AbstractStorage } from './storage';
6
- export declare class MinioStorage extends AbstractStorage {
7
- private _bucketName;
8
- protected buildClient(): Promise<Minio.Client>;
9
- updateBucketName(bucketName: string): void;
4
+ import type { ObjectItem, MinioConfig } from '../../types';
5
+ export declare class MinioStorage implements IObjectStorage {
6
+ private config?;
7
+ private bucketName;
8
+ private minioClient;
9
+ constructor(config?: MinioConfig | undefined);
10
+ private buildMinioClient;
11
+ private getClient;
10
12
  append(objectName: string, content: string): Promise<any>;
11
13
  getObjectToBuffer(objectName: string): Promise<Buffer>;
12
14
  getObjectToStream(objectName: string): Promise<ReadableStream>;
@@ -33,34 +33,46 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
34
  exports.MinioStorage = void 0;
35
35
  const lodash_1 = __importDefault(require("lodash"));
36
- const Minio = __importStar(require("minio"));
37
36
  const log_1 = __importDefault(require("../common/log"));
37
+ const Minio = __importStar(require("minio"));
38
+ const helper = __importStar(require("../utils/support"));
38
39
  const environment_1 = require("../parameter/environment");
39
- const storage_1 = require("./storage");
40
40
  const utils_1 = require("../utils");
41
- const { bucketName: defaultBucketName, endpoint } = environment_1.Environment.minio;
42
- const { hostname: HOST_NAME, port: PORT, protocol: PROTOCOL } = new URL(endpoint);
43
- class MinioStorage extends storage_1.AbstractStorage {
44
- constructor() {
45
- super(...arguments);
46
- this._bucketName = defaultBucketName;
41
+ class MinioStorage {
42
+ constructor(config) {
43
+ this.config = config;
47
44
  }
48
- buildClient() {
49
- var _a, _b;
45
+ buildMinioClient() {
50
46
  return __awaiter(this, void 0, void 0, function* () {
51
- const stsToken = yield this.getStsToken();
52
- this.updateBucketName(stsToken.bucket);
53
- return new Minio.Client({
54
- endPoint: HOST_NAME,
55
- port: Number(PORT),
56
- useSSL: PROTOCOL === 'https',
57
- accessKey: ((_a = stsToken.Credentials) === null || _a === void 0 ? void 0 : _a.AccessKeyId) || '',
58
- secretKey: ((_b = stsToken.Credentials) === null || _b === void 0 ? void 0 : _b.AccessKeySecret) || ''
59
- });
47
+ const options = {};
48
+ if (this.config) {
49
+ this.bucketName = this.config.bucket;
50
+ options.endPoint = this.config.host;
51
+ options.port = this.config.port;
52
+ options.useSSL = this.config.useSSL;
53
+ options.accessKey = this.config.accessKey;
54
+ options.secretKey = this.config.accessSecret;
55
+ }
56
+ else {
57
+ const { hostname, port, protocol } = new URL(environment_1.Environment.minio.endpoint);
58
+ const { bucket, Credentials } = yield helper.getSTSToken();
59
+ this.bucketName = bucket;
60
+ options.endPoint = hostname;
61
+ options.port = Number(port);
62
+ options.useSSL = protocol === 'https';
63
+ options.accessKey = Credentials.AccessKeyId;
64
+ options.secretKey = Credentials.AccessKeySecret;
65
+ }
66
+ return new Minio.Client(options);
60
67
  });
61
68
  }
62
- updateBucketName(bucketName) {
63
- this._bucketName = bucketName;
69
+ getClient() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ if (!this.minioClient) {
72
+ this.minioClient = yield this.buildMinioClient();
73
+ }
74
+ return this.minioClient;
75
+ });
64
76
  }
65
77
  append(objectName, content) {
66
78
  return __awaiter(this, void 0, void 0, function* () {
@@ -84,7 +96,7 @@ class MinioStorage extends storage_1.AbstractStorage {
84
96
  getObjectToStream(objectName) {
85
97
  return __awaiter(this, void 0, void 0, function* () {
86
98
  const minioClient = yield this.getClient();
87
- return yield minioClient.getObject(this._bucketName, objectName);
99
+ return yield minioClient.getObject(this.bucketName, objectName);
88
100
  });
89
101
  }
90
102
  getObjectToString(objectName) {
@@ -102,19 +114,19 @@ class MinioStorage extends storage_1.AbstractStorage {
102
114
  putObject(objectName, data) {
103
115
  return __awaiter(this, void 0, void 0, function* () {
104
116
  const minioClient = yield this.getClient();
105
- yield minioClient.putObject(this._bucketName, objectName, data);
117
+ yield minioClient.putObject(this.bucketName, objectName, data);
106
118
  });
107
119
  }
108
120
  fPutObject(objectName, filePath) {
109
121
  return __awaiter(this, void 0, void 0, function* () {
110
122
  const minioClient = yield this.getClient();
111
- yield minioClient.fPutObject(this._bucketName, objectName, filePath, {});
123
+ yield minioClient.fPutObject(this.bucketName, objectName, filePath, {});
112
124
  });
113
125
  }
114
126
  fGetObject(objectName, filePath) {
115
127
  return __awaiter(this, void 0, void 0, function* () {
116
128
  const minioClient = yield this.getClient();
117
- yield minioClient.fGetObject(this._bucketName, objectName, filePath);
129
+ yield minioClient.fGetObject(this.bucketName, objectName, filePath);
118
130
  });
119
131
  }
120
132
  listObjects(prefix, recursive = true) {
@@ -122,7 +134,7 @@ class MinioStorage extends storage_1.AbstractStorage {
122
134
  const mnClient = yield this.getClient();
123
135
  return new Promise((resolve, reject) => {
124
136
  const objectList = [];
125
- const stream = mnClient.listObjectsV2(this._bucketName, prefix, recursive);
137
+ const stream = mnClient.listObjectsV2(this.bucketName, prefix, recursive);
126
138
  stream.on('data', (bucketItem) => { objectList.push(bucketItem); });
127
139
  stream.on('error', reject);
128
140
  stream.on('end', (err) => {
@@ -145,13 +157,13 @@ class MinioStorage extends storage_1.AbstractStorage {
145
157
  deleteObject(objectName) {
146
158
  return __awaiter(this, void 0, void 0, function* () {
147
159
  const minioClient = yield this.getClient();
148
- yield minioClient.removeObject(this._bucketName, objectName);
160
+ yield minioClient.removeObject(this.bucketName, objectName);
149
161
  });
150
162
  }
151
163
  deleteMultiObjects(objectNames) {
152
164
  return __awaiter(this, void 0, void 0, function* () {
153
165
  const minioClient = yield this.getClient();
154
- yield minioClient.removeObjects(this._bucketName, objectNames);
166
+ yield minioClient.removeObjects(this.bucketName, objectNames);
155
167
  });
156
168
  }
157
169
  checkObjectNameExist(objectName) {
@@ -159,7 +171,7 @@ class MinioStorage extends storage_1.AbstractStorage {
159
171
  const minioClient = yield this.getClient();
160
172
  let bucketExist = false;
161
173
  try {
162
- yield minioClient.getObject(this._bucketName, objectName);
174
+ yield minioClient.getObject(this.bucketName, objectName);
163
175
  bucketExist = true;
164
176
  }
165
177
  catch (ex) {
@@ -172,4 +184,4 @@ class MinioStorage extends storage_1.AbstractStorage {
172
184
  }
173
185
  }
174
186
  exports.MinioStorage = MinioStorage;
175
- //# sourceMappingURL=minio.js.map
187
+ //# sourceMappingURL=minioStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minioStorage.js","sourceRoot":"","sources":["../../../src/core/storage/minioStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ import type { Stream } from 'stream';
3
+ import type { ObjectItem } from '../../types';
4
+ export interface IObjectStorage {
5
+ append(objectName: string, content: String): Promise<any>;
6
+ getObjectToBuffer(objectName: string): Promise<Buffer>;
7
+ getObjectToStream(objectName: string): Promise<Stream | null>;
8
+ getObjectToString(objectName: string): Promise<string>;
9
+ getObjectToJSON(objectName: string): Promise<unknown>;
10
+ fGetObject(objectName: string, filePath: string): Promise<any>;
11
+ fPutObject(objectName: string, filePath: string): Promise<void>;
12
+ putObject(objectName: string, data: any): Promise<void>;
13
+ listObjects(prefix: string, recursive?: boolean, maxKeys?: number): Promise<ObjectItem[]>;
14
+ deleteObject(objectName: string): Promise<void>;
15
+ deleteMultiObjects(objectNames: string[]): Promise<void>;
16
+ checkObjectNameExist(objectName: string): Promise<boolean>;
17
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("lodash");
4
+ //# sourceMappingURL=objectStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectStorage.js","sourceRoot":"","sources":["../../../src/core/storage/objectStorage.ts"],"names":[],"mappings":";;AAAA,kBAAuB"}
@@ -1,10 +1,15 @@
1
1
  /// <reference types="node" />
2
- import OSS from 'ali-oss';
3
- import { AbstractStorage } from './storage';
4
- import type { ObjectItem } from '../../types';
2
+ import type { IObjectStorage } from './objectStorage';
5
3
  import type { Readable as ReadableStream } from 'stream';
6
- export declare class OSSStorage extends AbstractStorage {
7
- protected buildClient(): Promise<OSS>;
4
+ import type { ObjectItem, AliOSSConfig } from '../../types';
5
+ export declare class OSSStorage implements IObjectStorage {
6
+ private config?;
7
+ private ossClient;
8
+ private tokenExpiration;
9
+ constructor(config?: AliOSSConfig | undefined);
10
+ private buildOSSClient;
11
+ private isTokenExpiration;
12
+ private getClient;
8
13
  append(objectName: string, content: string): Promise<any>;
9
14
  getObjectToBuffer(objectName: string): Promise<Buffer>;
10
15
  getObjectToStream(objectName: string): Promise<any>;
@@ -33,22 +33,46 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
34
  exports.OSSStorage = void 0;
35
35
  const lodash_1 = __importDefault(require("lodash"));
36
- const ali_oss_1 = __importDefault(require("ali-oss"));
37
36
  const util = __importStar(require("../utils"));
37
+ const helper = __importStar(require("../utils/support"));
38
+ const ali_oss_1 = __importDefault(require("ali-oss"));
39
+ const moment_1 = __importDefault(require("moment"));
38
40
  const utils_1 = require("../utils");
39
- const storage_1 = require("./storage");
40
- class OSSStorage extends storage_1.AbstractStorage {
41
- buildClient() {
42
- var _a, _b;
41
+ class OSSStorage {
42
+ constructor(config) {
43
+ this.config = config;
44
+ }
45
+ buildOSSClient() {
43
46
  return __awaiter(this, void 0, void 0, function* () {
44
- const stsToken = yield this.getStsToken();
45
- return new ali_oss_1.default({
46
- bucket: stsToken.bucket || '',
47
- region: stsToken.region || '',
48
- accessKeyId: ((_a = stsToken.Credentials) === null || _a === void 0 ? void 0 : _a.AccessKeyId) || '',
49
- accessKeySecret: ((_b = stsToken.Credentials) === null || _b === void 0 ? void 0 : _b.AccessKeySecret) || '',
50
- stsToken: stsToken.Credentials.SecurityToken
51
- });
47
+ const options = {};
48
+ if (this.config) {
49
+ options.endpoint = this.config.endpoint;
50
+ options.bucket = this.config.bucket;
51
+ options.accessKeyId = this.config.accessKey;
52
+ options.accessKeySecret = this.config.accessSecret;
53
+ options.stsToken = this.config.securityToken;
54
+ }
55
+ else {
56
+ const { bucket, region, Credentials } = yield helper.getSTSToken();
57
+ this.tokenExpiration = Credentials.Expiration || '';
58
+ options.region = region;
59
+ options.bucket = bucket;
60
+ options.accessKeyId = Credentials.AccessKeyId;
61
+ options.accessKeySecret = Credentials.AccessKeySecret;
62
+ options.stsToken = Credentials.SecurityToken;
63
+ }
64
+ return new ali_oss_1.default(options);
65
+ });
66
+ }
67
+ isTokenExpiration(tokenExpiration) {
68
+ return moment_1.default(moment_1.default.now()).isAfter(moment_1.default(tokenExpiration));
69
+ }
70
+ getClient() {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ if (!this.ossClient || !this.tokenExpiration || this.isTokenExpiration(this.tokenExpiration)) {
73
+ this.ossClient = yield this.buildOSSClient();
74
+ }
75
+ return this.ossClient;
52
76
  });
53
77
  }
54
78
  append(objectName, content) {
@@ -153,4 +177,4 @@ class OSSStorage extends storage_1.AbstractStorage {
153
177
  }
154
178
  }
155
179
  exports.OSSStorage = OSSStorage;
156
- //# sourceMappingURL=oss.js.map
180
+ //# sourceMappingURL=ossStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ossStorage.js","sourceRoot":"","sources":["../../../src/core/storage/ossStorage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
- import type { ObjectStorage } from './storage';
1
+ import { OSSStorage } from './ossStorage';
2
+ import { StorageType, IStorageConfig } from '../../types';
3
+ import { MinioStorage } from './minioStorage';
4
+ import type { IObjectStorage } from './objectStorage';
5
+ export declare class StorageFactory {
6
+ /**
7
+ * 组件内部使用 OSS API
8
+ */
9
+ static getStorage(storageType: StorageType): IObjectStorage;
10
+ /**
11
+ * 通用的 OSS API
12
+ */
13
+ static newStorage(options: IStorageConfig): OSSStorage | MinioStorage;
14
+ }
2
15
  export declare class Storage {
3
16
  private static _instance;
4
- static get Instance(): ObjectStorage;
17
+ static get Instance(): IObjectStorage;
5
18
  private constructor();
6
19
  }
@@ -1,29 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Storage = void 0;
4
- const oss_1 = require("./oss");
3
+ exports.Storage = exports.StorageFactory = void 0;
4
+ const ossStorage_1 = require("./ossStorage");
5
5
  const types_1 = require("../../types");
6
6
  const environment_1 = require("../parameter/environment");
7
- const minio_1 = require("./minio");
7
+ const minioStorage_1 = require("./minioStorage");
8
8
  class StorageFactory {
9
- getStorage(storageType) {
9
+ /**
10
+ * 组件内部使用 OSS API
11
+ */
12
+ static getStorage(storageType) {
10
13
  if (!storageType) {
11
14
  throw new Error('missing storageType');
12
15
  }
13
16
  if (storageType === types_1.StorageType.OSS || storageType === types_1.StorageType.SUANPAN) {
14
- return new oss_1.OSSStorage();
17
+ return new ossStorage_1.OSSStorage();
15
18
  }
16
19
  else if (storageType === types_1.StorageType.MINIO) {
17
- return new minio_1.MinioStorage();
20
+ return new minioStorage_1.MinioStorage();
18
21
  }
19
22
  throw new Error(`unknown storage type ${storageType}.`);
20
23
  }
24
+ /**
25
+ * 通用的 OSS API
26
+ */
27
+ static newStorage(options) {
28
+ if (options.type === 'oss') {
29
+ return new ossStorage_1.OSSStorage(options.config);
30
+ }
31
+ else if (options.type === 'minio') {
32
+ return new minioStorage_1.MinioStorage(options.config);
33
+ }
34
+ throw new Error(`unknown storage type ${options.type}.`);
35
+ }
21
36
  }
37
+ exports.StorageFactory = StorageFactory;
22
38
  class Storage {
23
39
  constructor() { }
24
40
  static get Instance() {
25
41
  if (!this._instance) {
26
- this._instance = new StorageFactory().getStorage(environment_1.Environment.spConfig.storageType);
42
+ this._instance = StorageFactory.getStorage(environment_1.Environment.spConfig.storageType);
27
43
  }
28
44
  return this._instance;
29
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wrapperStorage.js","sourceRoot":"","sources":["../../../src/core/storage/wrapperStorage.ts"],"names":[],"mappings":";;;AAAA,+BAAmC;AACnC,uCAA0C;AAC1C,0DAAuD;AACvD,mCAAuC;AAEvC,MAAM,cAAc;IAClB,UAAU,CAAC,WAAwB;QACjC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAAE;QAC7D,IAAI,WAAW,KAAK,mBAAW,CAAC,GAAG,IAAI,WAAW,KAAK,mBAAW,CAAC,OAAO,EAAE;YAC1E,OAAO,IAAI,gBAAU,EAAE,CAAC;SACzB;aAAM,IAAI,WAAW,KAAK,mBAAW,CAAC,KAAK,EAAE;YAC5C,OAAO,IAAI,oBAAY,EAAE,CAAC;SAC3B;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,GAAG,CAAC,CAAC;IAC1D,CAAC;CACF;AACD,MAAa,OAAO;IASlB,gBAAwB,CAAC;IANlB,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC,UAAU,CAAC,yBAAW,CAAC,QAAQ,CAAC,WAA0B,CAAC,CAAC;SACnG;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CAEF;AAVD,0BAUC"}
1
+ {"version":3,"file":"wrapperStorage.js","sourceRoot":"","sources":["../../../src/core/storage/wrapperStorage.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAC1C,uCAAqF;AACrF,0DAAuD;AACvD,iDAA8C;AAE9C,MAAa,cAAc;IAEzB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAwB;QACxC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SAAE;QAC7D,IAAI,WAAW,KAAK,mBAAW,CAAC,GAAG,IAAI,WAAW,KAAK,mBAAW,CAAC,OAAO,EAAE;YAC1E,OAAO,IAAI,uBAAU,EAAE,CAAC;SACzB;aAAM,IAAI,WAAW,KAAK,mBAAW,CAAC,KAAK,EAAE;YAC5C,OAAO,IAAI,2BAAY,EAAE,CAAC;SAC3B;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAuB;QACvC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;YAC1B,OAAO,IAAI,uBAAU,CAAC,OAAO,CAAC,MAAsB,CAAC,CAAC;SACvD;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;YACnC,OAAO,IAAI,2BAAY,CAAC,OAAO,CAAC,MAAqB,CAAC,CAAC;SACxD;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3D,CAAC;CACF;AA1BD,wCA0BC;AACD,MAAa,OAAO;IASlB,gBAAwB,CAAC;IANlB,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,yBAAW,CAAC,QAAQ,CAAC,WAA0B,CAAC,CAAC;SAC7F;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CAEF;AAVD,0BAUC"}
@@ -1,3 +1,4 @@
1
- import type { AnyJSON } from '../../types';
1
+ import type { AnyJSON, StsToken } from '../../types';
2
2
  export declare function buildUserIdHeaderField(): AnyJSON<string>;
3
3
  export declare function buildSpAffinityUrl(): string;
4
+ export declare function getSTSToken(): Promise<StsToken>;
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildSpAffinityUrl = exports.buildUserIdHeaderField = void 0;
15
+ exports.getSTSToken = exports.buildSpAffinityUrl = exports.buildUserIdHeaderField = void 0;
7
16
  const lodash_1 = __importDefault(require("lodash"));
17
+ const got_1 = __importDefault(require("got"));
8
18
  const _1 = require(".");
9
19
  const environment_1 = require("../parameter/environment");
10
20
  function buildUserIdHeaderField() {
@@ -25,4 +35,15 @@ function buildSpAffinityUrl() {
25
35
  return `${protocol}://${host}${port}`;
26
36
  }
27
37
  exports.buildSpAffinityUrl = buildSpAffinityUrl;
38
+ function getSTSToken() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const gotOptions = {
41
+ prefixUrl: buildSpAffinityUrl(),
42
+ headers: buildUserIdHeaderField()
43
+ };
44
+ const response = yield got_1.default('oss/token', gotOptions);
45
+ return JSON.parse(response.body);
46
+ });
47
+ }
48
+ exports.getSTSToken = getSTSToken;
28
49
  //# sourceMappingURL=support.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/core/utils/support.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,wBAAgC;AAChC,0DAAuD;AAGvD,SAAgB,sBAAsB;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;QACvB,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,MAAM,CAAC,MAAgB;QAC7E,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,cAAW,CAAC,yBAAW,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAC,CAAC,QAAQ,CAAC,yBAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/H,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,IAAI;KACxD,CAAC,CAAC;AACL,CAAC;AAND,wDAMC;AAED,SAAgB,kBAAkB;IAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC;IAEtF,IAAI,QAAQ,EAAE;QAAE,OAAO,QAAQ,CAAC;KAAE;IAElC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,GAAG,QAAQ,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AACxC,CAAC;AARD,gDAQC"}
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/core/utils/support.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,8CAAsB;AACtB,wBAAgC;AAChC,0DAAuD;AAGvD,SAAgB,sBAAsB;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;QACvB,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,MAAM,CAAC,MAAgB;QAC7E,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,cAAW,CAAC,yBAAW,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAC,CAAC,QAAQ,CAAC,yBAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/H,CAAC,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,IAAI;KACxD,CAAC,CAAC;AACL,CAAC;AAND,wDAMC;AAED,SAAgB,kBAAkB;IAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC;IAEtF,IAAI,QAAQ,EAAE;QAAE,OAAO,QAAQ,CAAC;KAAE;IAElC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,GAAG,QAAQ,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AACxC,CAAC;AARD,gDAQC;AAED,SAAsB,WAAW;;QAC/B,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,kBAAkB,EAAE;YAC/B,OAAO,EAAE,sBAAsB,EAAE;SAClC,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,aAAG,CAAC,WAAW,EAAE,UAAiB,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAa,CAAC;IAC/C,CAAC;CAAA;AAPD,kCAOC"}
@@ -31,3 +31,22 @@ export declare type StsToken = {
31
31
  bucket: string;
32
32
  region: string;
33
33
  };
34
+ export interface OSSConfig {
35
+ bucket: string;
36
+ accessKey: string;
37
+ accessSecret: string;
38
+ }
39
+ export interface MinioConfig extends OSSConfig {
40
+ host: string;
41
+ port: number;
42
+ useSSL: boolean;
43
+ }
44
+ export interface AliOSSConfig extends OSSConfig {
45
+ endpoint: string;
46
+ securityToken?: string;
47
+ }
48
+ export declare type StorageConfig = MinioConfig | AliOSSConfig;
49
+ export interface IStorageConfig {
50
+ type: 'oss' | 'minio';
51
+ config: StorageConfig;
52
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"storageTypes.js","sourceRoot":"","sources":["../../src/types/storageTypes.ts"],"names":[],"mappings":";;;AAOA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB"}
1
+ {"version":3,"file":"storageTypes.js","sourceRoot":"","sources":["../../src/types/storageTypes.ts"],"names":[],"mappings":";;;AAMA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "suanpan_node_sdk",
3
- "version": "2.0.10",
3
+ "version": "2.1.0-beta",
4
4
  "description": "suanpan sdk for node.js",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"minio.js","sourceRoot":"","sources":["../../../src/core/storage/minio.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"oss.js","sourceRoot":"","sources":["../../../src/core/storage/oss.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- /// <reference types="node" />
2
- import type { Stream } from 'stream';
3
- import type { StsToken, ObjectItem } from '../../types';
4
- export interface ObjectStorage {
5
- append(objectName: string, content: String): Promise<any>;
6
- getObjectToBuffer(objectName: string): Promise<Buffer>;
7
- getObjectToStream(objectName: string): Promise<Stream | null>;
8
- getObjectToString(objectName: string): Promise<string>;
9
- getObjectToJSON(objectName: string): Promise<unknown>;
10
- fGetObject(objectName: string, filePath: string): Promise<any>;
11
- fPutObject(objectName: string, filePath: string): Promise<void>;
12
- putObject(objectName: string, data: any): Promise<void>;
13
- listObjects(prefix: string, recursive?: boolean, maxKeys?: number): Promise<ObjectItem[]>;
14
- deleteObject(objectName: string): Promise<void>;
15
- deleteMultiObjects(objectNames: string[]): Promise<void>;
16
- checkObjectNameExist(objectName: string): Promise<boolean>;
17
- }
18
- export declare abstract class AbstractStorage implements ObjectStorage {
19
- private client;
20
- private lastToken;
21
- protected isTokenExpiration(tokenExpiration: string): boolean;
22
- protected getClient(): Promise<unknown>;
23
- protected getStsToken(): Promise<StsToken>;
24
- protected abstract buildClient(): Promise<any>;
25
- abstract append(objectName: string, content: String): Promise<any>;
26
- abstract getObjectToBuffer(objectName: string): Promise<Buffer>;
27
- abstract getObjectToStream(objectName: string): Promise<Stream | null>;
28
- abstract getObjectToString(objectName: string): Promise<string>;
29
- abstract getObjectToJSON(objectName: string): Promise<unknown>;
30
- abstract fGetObject(objectName: string, filePath: string): Promise<void>;
31
- abstract fPutObject(objectName: string, filePath: string): Promise<void>;
32
- abstract putObject(objectName: string, data: any): Promise<void>;
33
- abstract listObjects(prefix: string, recursive?: boolean, maxKeys?: number): Promise<ObjectItem[]>;
34
- abstract deleteObject(objectName: string): Promise<void>;
35
- abstract deleteMultiObjects(objectNames: string[]): Promise<void>;
36
- abstract checkObjectNameExist(objectName: string): Promise<boolean>;
37
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AbstractStorage = void 0;
16
- const got_1 = __importDefault(require("got"));
17
- const moment_1 = __importDefault(require("moment"));
18
- const support_1 = require("../utils/support");
19
- class AbstractStorage {
20
- isTokenExpiration(tokenExpiration) {
21
- return moment_1.default(moment_1.default.now()).isAfter(moment_1.default(tokenExpiration));
22
- }
23
- getClient() {
24
- var _a, _b;
25
- return __awaiter(this, void 0, void 0, function* () {
26
- const tokenExpiration = (_b = (_a = this.lastToken) === null || _a === void 0 ? void 0 : _a.Credentials) === null || _b === void 0 ? void 0 : _b.Expiration;
27
- if (!this.client || !tokenExpiration || this.isTokenExpiration(tokenExpiration)) {
28
- this.client = yield this.buildClient();
29
- }
30
- return this.client;
31
- });
32
- }
33
- getStsToken() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const gotOptions = {
36
- prefixUrl: support_1.buildSpAffinityUrl(),
37
- headers: support_1.buildUserIdHeaderField()
38
- };
39
- const response = yield got_1.default('oss/token', gotOptions);
40
- const stsToken = JSON.parse(response.body);
41
- this.lastToken = stsToken;
42
- return stsToken;
43
- });
44
- }
45
- }
46
- exports.AbstractStorage = AbstractStorage;
47
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/core/storage/storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8CAAsB;AACtB,oDAA4B;AAG5B,8CAA8E;AAqB9E,MAAsB,eAAe;IAKzB,iBAAiB,CAAE,eAAuB;QAClD,OAAO,gBAAM,CAAC,gBAAM,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEe,SAAS;;;YAEvB,MAAM,eAAe,GAAG,MAAA,MAAC,IAAI,CAAC,SAAsB,0CAAE,WAAW,0CAAE,UAAU,CAAC;YAE9E,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;gBAC/E,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;aACxC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;;KACpB;IAEe,WAAW;;YACzB,MAAM,UAAU,GAAG;gBACjB,SAAS,EAAE,4BAAkB,EAAE;gBAC/B,OAAO,EAAE,gCAAsB,EAAE;aAClC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,aAAG,CAAC,WAAW,EAAE,UAAiB,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,OAAO,QAAoB,CAAC;QAC9B,CAAC;KAAA;CAqBF;AAjDD,0CAiDC"}