luoyu-oss-unified 0.0.1 → 0.0.2

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.
Files changed (64) hide show
  1. package/package.json +11 -6
  2. package/.prettierrc +0 -4
  3. package/dist/packages/adapters/aliyun-adapter.d.ts +0 -19
  4. package/dist/packages/adapters/aliyun-adapter.js +0 -196
  5. package/dist/packages/adapters/aliyun-adapter.js.map +0 -1
  6. package/dist/packages/adapters/base-adapter.d.ts +0 -28
  7. package/dist/packages/adapters/base-adapter.js +0 -118
  8. package/dist/packages/adapters/base-adapter.js.map +0 -1
  9. package/dist/packages/adapters/minio-adapter.d.ts +0 -17
  10. package/dist/packages/adapters/minio-adapter.js +0 -175
  11. package/dist/packages/adapters/minio-adapter.js.map +0 -1
  12. package/dist/packages/adapters/qiniu-adapter.d.ts +0 -16
  13. package/dist/packages/adapters/qiniu-adapter.js +0 -214
  14. package/dist/packages/adapters/qiniu-adapter.js.map +0 -1
  15. package/dist/packages/adapters/tencent-adapter.d.ts +0 -13
  16. package/dist/packages/adapters/tencent-adapter.js +0 -177
  17. package/dist/packages/adapters/tencent-adapter.js.map +0 -1
  18. package/dist/packages/core/multipart-upload.d.ts +0 -9
  19. package/dist/packages/core/multipart-upload.js +0 -86
  20. package/dist/packages/core/multipart-upload.js.map +0 -1
  21. package/dist/packages/core/oss-client.d.ts +0 -32
  22. package/dist/packages/core/oss-client.js +0 -108
  23. package/dist/packages/core/oss-client.js.map +0 -1
  24. package/dist/packages/index.d.ts +0 -10
  25. package/dist/packages/index.js +0 -35
  26. package/dist/packages/index.js.map +0 -1
  27. package/dist/packages/types/enums.d.ts +0 -17
  28. package/dist/packages/types/enums.js +0 -24
  29. package/dist/packages/types/enums.js.map +0 -1
  30. package/dist/packages/types/index.d.ts +0 -82
  31. package/dist/packages/types/index.js +0 -6
  32. package/dist/packages/types/index.js.map +0 -1
  33. package/dist/packages/utils/index.d.ts +0 -1
  34. package/dist/packages/utils/index.js +0 -6
  35. package/dist/packages/utils/index.js.map +0 -1
  36. package/dist/tsconfig.build.tsbuildinfo +0 -1
  37. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  38. package/downloaded.jpg +0 -0
  39. package/eslint.config.mjs +0 -35
  40. package/nest-cli.json +0 -8
  41. package/packages/adapters/aliyun-adapter.ts +0 -252
  42. package/packages/adapters/base-adapter.ts +0 -174
  43. package/packages/adapters/minio-adapter.ts +0 -186
  44. package/packages/adapters/qiniu-adapter.ts +0 -247
  45. package/packages/adapters/tencent-adapter.ts +0 -186
  46. package/packages/core/multipart-upload.ts +0 -116
  47. package/packages/core/oss-client.ts +0 -169
  48. package/packages/index.ts +0 -15
  49. package/packages/types/enums.ts +0 -19
  50. package/packages/types/index.ts +0 -102
  51. package/packages/utils/index.ts +0 -1
  52. package/src/app.controller.ts +0 -22
  53. package/src/app.module.ts +0 -10
  54. package/src/app.service.ts +0 -8
  55. package/src/main.ts +0 -8
  56. package/src/test.oss.ts +0 -116
  57. package/tsconfig.build.json +0 -4
  58. package/tsconfig.json +0 -32
  59. package/tsconfig.lib.json +0 -27
  60. package/upload/large.mp4 +0 -0
  61. package/upload//344/270/213/350/275/275 copy 2.jpg +0 -0
  62. package/upload//344/270/213/350/275/275 copy.jpg +0 -0
  63. package/upload//344/270/213/350/275/275.jpg +0 -0
  64. package//346/211/223/345/214/205.md +0 -30
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "luoyu-oss-unified",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Unified OSS client library supporting multiple cloud providers",
5
5
  "author": "",
6
6
  "private": false,
7
7
  "license": "MIT",
8
- "main": "dist/lib/packages/index.js",
9
- "module": "dist/lib/packages/index.js",
10
- "types": "dist/lib/packages/index.d.ts",
8
+ "main": "dist/lib/index.js",
9
+ "module": "dist/lib/index.js",
10
+ "types": "dist/lib/index.d.ts",
11
11
  "scripts": {
12
- "build:lib": " tsc -p tsconfig.lib.json",
13
- "build": "nest build",
12
+ "build:lib": "rimraf dist && tsc -p tsconfig.lib.json && rimraf dist/tsconfig.lib.tsbuildinfo",
13
+ "build:prod": "nest build",
14
14
  "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
15
15
  "start": "nest start",
16
16
  "start:dev": "nest start --watch",
@@ -24,6 +24,11 @@
24
24
  "test:e2e": "jest --config ./test/jest-e2e.json",
25
25
  "prepublishOnly": "npm run build:lib"
26
26
  },
27
+ "files": [
28
+ "dist/lib/",
29
+ "package.json",
30
+ "README.md"
31
+ ],
27
32
  "dependencies": {
28
33
  "@nestjs/common": "^11.0.1",
29
34
  "@nestjs/core": "^11.0.1",
package/.prettierrc DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "all"
4
- }
@@ -1,19 +0,0 @@
1
- import { BaseOSSAdapter } from './base-adapter';
2
- import { type OSSConfig, type UploadOptions, type DownloadOptions, type ListOptions, type ListResult, type OSSObject, type MultipartUploadInfo, type PartInfo } from '../types';
3
- export declare class AliyunOSSAdapter extends BaseOSSAdapter {
4
- private client;
5
- constructor(config: OSSConfig);
6
- upload(options: UploadOptions): Promise<string>;
7
- download(options: DownloadOptions): Promise<Buffer>;
8
- delete(path: string): Promise<void>;
9
- list(options?: ListOptions): Promise<ListResult>;
10
- head(path: string): Promise<OSSObject | null>;
11
- exists(path: string): Promise<boolean>;
12
- getSignedUrl(path: string, expires?: number): Promise<string>;
13
- initiateMultipartUpload(path: string, partSize?: number): Promise<MultipartUploadInfo>;
14
- uploadPart(uploadInfo: MultipartUploadInfo, partNumber: number, data: Buffer, start: number, end: number): Promise<PartInfo>;
15
- completeMultipartUpload(uploadInfo: MultipartUploadInfo, parts: PartInfo[]): Promise<string>;
16
- abortMultipartUpload(uploadInfo: MultipartUploadInfo): Promise<void>;
17
- listParts(uploadInfo: MultipartUploadInfo): Promise<PartInfo[]>;
18
- private uploadMultipartParts;
19
- }
@@ -1,196 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AliyunOSSAdapter = void 0;
7
- const ali_oss_1 = __importDefault(require("ali-oss"));
8
- const base_adapter_1 = require("./base-adapter");
9
- const types_1 = require("../types");
10
- class AliyunOSSAdapter extends base_adapter_1.BaseOSSAdapter {
11
- constructor(config) {
12
- super(config);
13
- this.client = new ali_oss_1.default({
14
- region: config.region,
15
- accessKeyId: config.accessKeyId,
16
- accessKeySecret: config.accessKeySecret,
17
- bucket: config.bucket,
18
- endpoint: config.endpoint,
19
- secure: config.secure,
20
- timeout: config.timeout || 60000
21
- });
22
- }
23
- async upload(options) {
24
- const { path, file, contentType, acl, headers = {} } = options;
25
- const ossOptions = {
26
- headers: {
27
- 'Content-Type': contentType,
28
- ...headers
29
- }
30
- };
31
- if (acl && acl !== types_1.ACL.DEFAULT) {
32
- ossOptions.headers['x-oss-object-acl'] = acl;
33
- }
34
- let result;
35
- if (options.mode === 'multipart') {
36
- const uploadInfo = await this.initiateMultipartUpload(path, options.partSize);
37
- const parts = await this.uploadMultipartParts(uploadInfo, file, options);
38
- result = await this.completeMultipartUpload(uploadInfo, parts);
39
- }
40
- else {
41
- if (typeof file === 'string') {
42
- result = await this.client.put(path, file, ossOptions);
43
- }
44
- else if (Buffer.isBuffer(file)) {
45
- result = await this.client.put(path, Buffer.from(file), ossOptions);
46
- }
47
- else {
48
- result = await this.client.putStream(path, file, ossOptions);
49
- }
50
- }
51
- if (typeof result === 'object' && result.url) {
52
- return result.url;
53
- }
54
- else if (typeof result === 'object' && result.res && result.res.requestUrls) {
55
- return result.res.requestUrls[0];
56
- }
57
- else {
58
- throw new Error('Upload failed: unable to extract URL from response');
59
- }
60
- }
61
- async download(options) {
62
- const { path, destination, range } = options;
63
- const requestOptions = {};
64
- if (range) {
65
- requestOptions.headers = {
66
- Range: `bytes=${range.start}-${range.end}`
67
- };
68
- }
69
- const result = await this.client.get(path, destination, requestOptions);
70
- return result.content;
71
- }
72
- async delete(path) {
73
- await this.client.delete(path);
74
- }
75
- async list(options = {}) {
76
- const result = await this.client.list({
77
- prefix: options.prefix,
78
- delimiter: options.delimiter,
79
- 'max-keys': options.limit,
80
- marker: options.marker
81
- }, {});
82
- const objects = result.objects.map(obj => ({
83
- name: obj.name,
84
- size: obj.size,
85
- lastModified: new Date(obj.lastModified),
86
- etag: obj.etag
87
- }));
88
- return {
89
- objects,
90
- prefixes: result.prefixes,
91
- nextMarker: result.nextMarker,
92
- isTruncated: result.isTruncated
93
- };
94
- }
95
- async head(path) {
96
- try {
97
- const result = await this.client.head(path);
98
- return {
99
- name: path,
100
- size: result.res.size,
101
- lastModified: new Date(result.res.headers['last-modified']),
102
- etag: result.res.headers.etag,
103
- contentType: result.res.headers['content-type']
104
- };
105
- }
106
- catch (error) {
107
- if (error.status === 404) {
108
- return null;
109
- }
110
- throw error;
111
- }
112
- }
113
- async exists(path) {
114
- const object = await this.head(path);
115
- return object !== null;
116
- }
117
- async getSignedUrl(path, expires = 3600) {
118
- return this.client.signatureUrl(path, { expires });
119
- }
120
- async initiateMultipartUpload(path, partSize = 5 * 1024 * 1024) {
121
- const result = await this.client.initMultipartUpload(path);
122
- return {
123
- uploadId: result.uploadId,
124
- path,
125
- partSize
126
- };
127
- }
128
- async uploadPart(uploadInfo, partNumber, data, start, end) {
129
- const result = await this.client.uploadPart(uploadInfo.path, uploadInfo.uploadId, partNumber, data, start, end);
130
- return {
131
- partNumber,
132
- size: data.length,
133
- etag: result.etag
134
- };
135
- }
136
- async completeMultipartUpload(uploadInfo, parts) {
137
- const result = await this.client.completeMultipartUpload(uploadInfo.path, uploadInfo.uploadId, parts.map(p => ({
138
- number: p.partNumber,
139
- etag: p.etag
140
- })));
141
- if (typeof result === 'object' && result.url) {
142
- return result.url;
143
- }
144
- else if (typeof result === 'object' && result.res && result.res.requestUrls) {
145
- return result.res.requestUrls[0];
146
- }
147
- else {
148
- throw new Error('Complete multipart upload failed: unable to extract URL from response');
149
- }
150
- }
151
- async abortMultipartUpload(uploadInfo) {
152
- await this.client.abortMultipartUpload(uploadInfo.path, uploadInfo.uploadId);
153
- }
154
- async listParts(uploadInfo) {
155
- const result = await this.client.listParts(uploadInfo.path, uploadInfo.uploadId);
156
- return result.parts.map((p) => ({
157
- partNumber: p.number,
158
- size: p.size,
159
- etag: p.etag
160
- }));
161
- }
162
- async uploadMultipartParts(uploadInfo, file, options) {
163
- const parts = [];
164
- const partSize = uploadInfo.partSize;
165
- let data;
166
- if (typeof file === 'string') {
167
- const fs = require('fs');
168
- data = fs.readFileSync(file);
169
- }
170
- else if (Buffer.isBuffer(file)) {
171
- data = file;
172
- }
173
- else {
174
- throw new Error('Stream upload for multipart not supported in this implementation');
175
- }
176
- const totalParts = Math.ceil(data.length / partSize);
177
- for (let i = 0; i < totalParts; i++) {
178
- const start = i * partSize;
179
- const end = Math.min(start + partSize, data.length);
180
- const partData = data.slice(start, end);
181
- const partInfo = await this.uploadPart(uploadInfo, i + 1, partData, start, end);
182
- parts.push(partInfo);
183
- if (options.progressCallback) {
184
- options.progressCallback({
185
- loaded: end,
186
- total: data.length,
187
- speed: 0,
188
- percent: (end / data.length) * 100
189
- });
190
- }
191
- }
192
- return parts;
193
- }
194
- }
195
- exports.AliyunOSSAdapter = AliyunOSSAdapter;
196
- //# sourceMappingURL=aliyun-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aliyun-adapter.js","sourceRoot":"","sources":["../../../packages/adapters/aliyun-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import type { OSSConfig, UploadOptions, DownloadOptions, ListOptions, ListResult, OSSObject, MultipartUploadInfo, PartInfo, ResumeUploadOptions } from '../types';
3
- export declare abstract class BaseOSSAdapter extends EventEmitter {
4
- protected config: OSSConfig;
5
- constructor(config: OSSConfig);
6
- abstract upload(options: UploadOptions): Promise<string>;
7
- abstract download(options: DownloadOptions): Promise<Buffer | NodeJS.ReadableStream>;
8
- abstract delete(path: string): Promise<void>;
9
- abstract list(options?: ListOptions): Promise<ListResult>;
10
- abstract head(path: string): Promise<OSSObject | null>;
11
- abstract exists(path: string): Promise<boolean>;
12
- abstract getSignedUrl(path: string, expires?: number): Promise<string>;
13
- createDirectory(path: string): Promise<void>;
14
- deleteDirectory(path: string): Promise<void>;
15
- listAll(prefix?: string): Promise<OSSObject[]>;
16
- listDirectories(prefix?: string): Promise<string[]>;
17
- initiateMultipartUpload(path: string, partSize?: number): Promise<MultipartUploadInfo>;
18
- uploadPart(uploadInfo: MultipartUploadInfo, partNumber: number, data: Buffer, start: number, end: number): Promise<PartInfo>;
19
- completeMultipartUpload(uploadInfo: MultipartUploadInfo, parts: PartInfo[]): Promise<string>;
20
- abortMultipartUpload(uploadInfo: MultipartUploadInfo): Promise<void>;
21
- listParts(uploadInfo: MultipartUploadInfo): Promise<PartInfo[]>;
22
- resumeUpload(options: ResumeUploadOptions): Promise<string>;
23
- copy(sourcePath: string, destPath: string): Promise<string>;
24
- move(sourcePath: string, destPath: string): Promise<void>;
25
- getFileSize(path: string): Promise<number>;
26
- getUrl(path: string): string;
27
- protected calculateSpeed(startTime: number, loaded: number): number;
28
- }
@@ -1,118 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseOSSAdapter = void 0;
4
- const events_1 = require("events");
5
- class BaseOSSAdapter extends events_1.EventEmitter {
6
- constructor(config) {
7
- super();
8
- this.config = config;
9
- }
10
- async createDirectory(path) {
11
- const dirPath = path.endsWith('/') ? path : `${path}/`;
12
- const dirMarker = `${dirPath}.directory-marker`;
13
- await this.upload({
14
- path: dirMarker,
15
- file: Buffer.from(''),
16
- contentType: 'application/x-directory'
17
- });
18
- }
19
- async deleteDirectory(path) {
20
- const dirPath = path.endsWith('/') ? path : `${path}/`;
21
- const objects = await this.listAll(dirPath);
22
- for (const obj of objects) {
23
- await this.delete(obj.name);
24
- }
25
- }
26
- async listAll(prefix) {
27
- const allObjects = [];
28
- let nextMarker;
29
- let isTruncated = true;
30
- while (isTruncated) {
31
- const result = await this.list({
32
- prefix,
33
- marker: nextMarker,
34
- limit: 1000
35
- });
36
- allObjects.push(...result.objects);
37
- nextMarker = result.nextMarker;
38
- isTruncated = result.isTruncated;
39
- }
40
- return allObjects;
41
- }
42
- async listDirectories(prefix) {
43
- const result = await this.list({
44
- prefix,
45
- delimiter: '/',
46
- });
47
- if (result.prefixes && result.prefixes.length > 0) {
48
- return result.prefixes;
49
- }
50
- const directories = new Set();
51
- if (result.objects) {
52
- const searchPrefix = prefix || '';
53
- for (const obj of result.objects) {
54
- if (obj.name.startsWith(searchPrefix)) {
55
- const subPath = obj.name.substring(searchPrefix.length);
56
- if (subPath.includes('/')) {
57
- const dirPath = subPath.substring(0, subPath.indexOf('/') + 1);
58
- directories.add(searchPrefix + dirPath);
59
- }
60
- }
61
- }
62
- }
63
- return Array.from(directories);
64
- }
65
- async initiateMultipartUpload(path, partSize = 5 * 1024 * 1024) {
66
- throw new Error('Method not implemented');
67
- }
68
- async uploadPart(uploadInfo, partNumber, data, start, end) {
69
- throw new Error('Method not implemented');
70
- }
71
- async completeMultipartUpload(uploadInfo, parts) {
72
- throw new Error('Method not implemented');
73
- }
74
- async abortMultipartUpload(uploadInfo) {
75
- throw new Error('Method not implemented');
76
- }
77
- async listParts(uploadInfo) {
78
- throw new Error('Method not implemented');
79
- }
80
- async resumeUpload(options) {
81
- throw new Error('Method not implemented');
82
- }
83
- async copy(sourcePath, destPath) {
84
- const content = await this.download({ path: sourcePath });
85
- if (Buffer.isBuffer(content)) {
86
- return await this.upload({
87
- path: destPath,
88
- file: content
89
- });
90
- }
91
- else {
92
- throw new Error('Stream copy not supported');
93
- }
94
- }
95
- async move(sourcePath, destPath) {
96
- await this.copy(sourcePath, destPath);
97
- await this.delete(sourcePath);
98
- }
99
- async getFileSize(path) {
100
- const object = await this.head(path);
101
- if (!object) {
102
- throw new Error(`File not found: ${path}`);
103
- }
104
- return object.size;
105
- }
106
- getUrl(path) {
107
- if (this.config.domain) {
108
- return `${this.config.secure ? 'https' : 'http'}://${this.config.domain}/${path}`;
109
- }
110
- return path;
111
- }
112
- calculateSpeed(startTime, loaded) {
113
- const elapsed = (Date.now() - startTime) / 1000;
114
- return elapsed > 0 ? loaded / elapsed : 0;
115
- }
116
- }
117
- exports.BaseOSSAdapter = BaseOSSAdapter;
118
- //# sourceMappingURL=base-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../../packages/adapters/base-adapter.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAatC,MAAsB,cAAe,SAAQ,qBAAY;IAGvD,YAAY,MAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAYD,KAAK,CAAC,eAAe,CAAC,IAAY;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;QACvD,MAAM,SAAS,GAAG,GAAG,OAAO,mBAAmB,CAAC;QAChD,MAAM,IAAI,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,WAAW,EAAE,yBAAyB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe;QAC3B,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,IAAI,UAA8B,CAAC;QACnC,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,OAAO,WAAW,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;gBAC7B,MAAM;gBACN,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YAC/B,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAe;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC7B,MAAM;YACN,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QAGH,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,MAAM,IAAI,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC/D,WAAW,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAGC,KAAK,CAAC,uBAAuB,CAAC,IAAY,EAAE,WAAmB,CAAC,GAAG,IAAI,GAAG,IAAI;QAC5E,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CACd,UAA+B,EAC/B,UAAkB,EAClB,IAAY,EACZ,KAAY,EACZ,GAAW;QAEX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,UAA+B,EAC/B,KAAiB;QAEjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,UAA+B;QACxD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAA+B;QAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAGD,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,QAAgB;QAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,QAAgB;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAGD,MAAM,CAAC,IAAY;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,cAAc,CAAC,SAAiB,EAAE,MAAc;QACxD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QAChD,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AAhKD,wCAgKC"}
@@ -1,17 +0,0 @@
1
- import { BaseOSSAdapter } from './base-adapter';
2
- import type { OSSConfig, UploadOptions, DownloadOptions, ListOptions, ListResult, OSSObject, MultipartUploadInfo, PartInfo } from '../types';
3
- export declare class MinioOSSAdapter extends BaseOSSAdapter {
4
- private client;
5
- constructor(config: OSSConfig);
6
- upload(options: UploadOptions): Promise<string>;
7
- download(options: DownloadOptions): Promise<Buffer>;
8
- delete(path: string): Promise<void>;
9
- list(options?: ListOptions): Promise<ListResult>;
10
- head(path: string): Promise<OSSObject | null>;
11
- exists(path: string): Promise<boolean>;
12
- getSignedUrl(path: string, expires?: number): Promise<string>;
13
- initiateMultipartUpload(path: string, partSize?: number): Promise<MultipartUploadInfo>;
14
- uploadPart(uploadInfo: MultipartUploadInfo, partNumber: number, data: Buffer): Promise<PartInfo>;
15
- completeMultipartUpload(uploadInfo: MultipartUploadInfo, parts: PartInfo[]): Promise<string>;
16
- abortMultipartUpload(uploadInfo: MultipartUploadInfo): Promise<void>;
17
- }
@@ -1,175 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.MinioOSSAdapter = void 0;
37
- const Minio = __importStar(require("minio"));
38
- const base_adapter_1 = require("./base-adapter");
39
- class MinioOSSAdapter extends base_adapter_1.BaseOSSAdapter {
40
- constructor(config) {
41
- super(config);
42
- const url = new URL(config.endpoint);
43
- const host = url?.hostname;
44
- const port = parseInt(url?.port || (url?.protocol === 'https:' ? '443' : '80'), 10);
45
- const useSSL = url.protocol === 'https:';
46
- this.client = new Minio.Client({
47
- endPoint: host,
48
- port: port,
49
- useSSL: useSSL,
50
- accessKey: config.accessKeyId,
51
- secretKey: config.accessKeySecret,
52
- region: config.region
53
- });
54
- }
55
- async upload(options) {
56
- const { path, file, contentType } = options;
57
- const metaData = {
58
- 'Content-Type': contentType || 'application/octet-stream'
59
- };
60
- if (typeof file === 'string') {
61
- await this.client.fPutObject(this.config.bucket, path, file, metaData);
62
- }
63
- else if (Buffer.isBuffer(file)) {
64
- await this.client.putObject(this.config.bucket, path, file, metaData);
65
- }
66
- else {
67
- await this.client.putObject(this.config.bucket, path, file, metaData);
68
- }
69
- return this.getUrl(path);
70
- }
71
- async download(options) {
72
- try {
73
- const stream = await this.client.getObject(this.config.bucket, options.path);
74
- const chunks = [];
75
- for await (const chunk of stream) {
76
- chunks.push(chunk);
77
- }
78
- return Buffer.concat(chunks);
79
- }
80
- catch (error) {
81
- throw error;
82
- }
83
- }
84
- async delete(path) {
85
- await this.client.removeObject(this.config.bucket, path);
86
- }
87
- async list(options = {}) {
88
- const objects = [];
89
- const prefixes = [];
90
- const stream = this.client.listObjectsV2(this.config.bucket, options.prefix || '', true, options.delimiter);
91
- return new Promise((resolve, reject) => {
92
- stream.on('data', (obj) => {
93
- if (obj.prefix) {
94
- prefixes.push(obj.prefix);
95
- }
96
- else {
97
- objects.push({
98
- name: obj.name,
99
- size: obj.size,
100
- lastModified: new Date(obj.lastModified),
101
- etag: obj.etag
102
- });
103
- }
104
- });
105
- stream.on('end', () => {
106
- resolve({
107
- objects,
108
- prefixes,
109
- isTruncated: false
110
- });
111
- });
112
- stream.on('error', reject);
113
- });
114
- }
115
- async head(path) {
116
- try {
117
- const stat = await this.client.statObject(this.config.bucket, path);
118
- return {
119
- name: path,
120
- size: stat.size,
121
- lastModified: new Date(stat.lastModified),
122
- etag: stat.etag,
123
- contentType: stat.metaData?.['content-type']
124
- };
125
- }
126
- catch (error) {
127
- if (error.code === 'NotFound') {
128
- return null;
129
- }
130
- throw error;
131
- }
132
- }
133
- async exists(path) {
134
- const object = await this.head(path);
135
- return object !== null;
136
- }
137
- async getSignedUrl(path, expires = 3600) {
138
- return this.client.presignedGetObject(this.config.bucket, path, expires);
139
- }
140
- async initiateMultipartUpload(path, partSize = 5 * 1024 * 1024) {
141
- const uploadId = await this.client.initiateNewMultipartUpload(this.config.bucket, path, {});
142
- return {
143
- uploadId,
144
- path,
145
- partSize
146
- };
147
- }
148
- async uploadPart(uploadInfo, partNumber, data) {
149
- const etag = await this.client.uploadPart({
150
- bucketName: this.config.bucket,
151
- objectName: uploadInfo.path,
152
- uploadID: uploadInfo.uploadId,
153
- partNumber: partNumber,
154
- partSize: uploadInfo.partSize,
155
- data: data
156
- });
157
- return {
158
- partNumber,
159
- size: data.length,
160
- etag: etag
161
- };
162
- }
163
- async completeMultipartUpload(uploadInfo, parts) {
164
- await this.client.completeMultipartUpload(this.config.bucket, uploadInfo.path, uploadInfo.uploadId, parts.map(p => ({
165
- part: p.partNumber,
166
- etag: p.etag
167
- })));
168
- return this.getUrl(uploadInfo.path);
169
- }
170
- async abortMultipartUpload(uploadInfo) {
171
- await this.client.abortMultipartUpload(this.config.bucket, uploadInfo.path, uploadInfo.uploadId);
172
- }
173
- }
174
- exports.MinioOSSAdapter = MinioOSSAdapter;
175
- //# sourceMappingURL=minio-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minio-adapter.js","sourceRoot":"","sources":["../../../packages/adapters/minio-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { BaseOSSAdapter } from './base-adapter';
2
- import type { OSSConfig, UploadOptions, DownloadOptions, ListOptions, ListResult, OSSObject } from '../types';
3
- export declare class QiniuOSSAdapter extends BaseOSSAdapter {
4
- private mac;
5
- private bucketManager;
6
- private formUploader;
7
- private putPolicy;
8
- constructor(config: OSSConfig);
9
- upload(options: UploadOptions): Promise<string>;
10
- download(options: DownloadOptions): Promise<Buffer>;
11
- delete(path: string): Promise<void>;
12
- list(options?: ListOptions): Promise<ListResult>;
13
- head(path: string): Promise<OSSObject | null>;
14
- exists(path: string): Promise<boolean>;
15
- getSignedUrl(path: string, expires?: number): Promise<string>;
16
- }