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.
- package/package.json +11 -6
- package/.prettierrc +0 -4
- package/dist/packages/adapters/aliyun-adapter.d.ts +0 -19
- package/dist/packages/adapters/aliyun-adapter.js +0 -196
- package/dist/packages/adapters/aliyun-adapter.js.map +0 -1
- package/dist/packages/adapters/base-adapter.d.ts +0 -28
- package/dist/packages/adapters/base-adapter.js +0 -118
- package/dist/packages/adapters/base-adapter.js.map +0 -1
- package/dist/packages/adapters/minio-adapter.d.ts +0 -17
- package/dist/packages/adapters/minio-adapter.js +0 -175
- package/dist/packages/adapters/minio-adapter.js.map +0 -1
- package/dist/packages/adapters/qiniu-adapter.d.ts +0 -16
- package/dist/packages/adapters/qiniu-adapter.js +0 -214
- package/dist/packages/adapters/qiniu-adapter.js.map +0 -1
- package/dist/packages/adapters/tencent-adapter.d.ts +0 -13
- package/dist/packages/adapters/tencent-adapter.js +0 -177
- package/dist/packages/adapters/tencent-adapter.js.map +0 -1
- package/dist/packages/core/multipart-upload.d.ts +0 -9
- package/dist/packages/core/multipart-upload.js +0 -86
- package/dist/packages/core/multipart-upload.js.map +0 -1
- package/dist/packages/core/oss-client.d.ts +0 -32
- package/dist/packages/core/oss-client.js +0 -108
- package/dist/packages/core/oss-client.js.map +0 -1
- package/dist/packages/index.d.ts +0 -10
- package/dist/packages/index.js +0 -35
- package/dist/packages/index.js.map +0 -1
- package/dist/packages/types/enums.d.ts +0 -17
- package/dist/packages/types/enums.js +0 -24
- package/dist/packages/types/enums.js.map +0 -1
- package/dist/packages/types/index.d.ts +0 -82
- package/dist/packages/types/index.js +0 -6
- package/dist/packages/types/index.js.map +0 -1
- package/dist/packages/utils/index.d.ts +0 -1
- package/dist/packages/utils/index.js +0 -6
- package/dist/packages/utils/index.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
- package/downloaded.jpg +0 -0
- package/eslint.config.mjs +0 -35
- package/nest-cli.json +0 -8
- package/packages/adapters/aliyun-adapter.ts +0 -252
- package/packages/adapters/base-adapter.ts +0 -174
- package/packages/adapters/minio-adapter.ts +0 -186
- package/packages/adapters/qiniu-adapter.ts +0 -247
- package/packages/adapters/tencent-adapter.ts +0 -186
- package/packages/core/multipart-upload.ts +0 -116
- package/packages/core/oss-client.ts +0 -169
- package/packages/index.ts +0 -15
- package/packages/types/enums.ts +0 -19
- package/packages/types/index.ts +0 -102
- package/packages/utils/index.ts +0 -1
- package/src/app.controller.ts +0 -22
- package/src/app.module.ts +0 -10
- package/src/app.service.ts +0 -8
- package/src/main.ts +0 -8
- package/src/test.oss.ts +0 -116
- package/tsconfig.build.json +0 -4
- package/tsconfig.json +0 -32
- package/tsconfig.lib.json +0 -27
- package/upload/large.mp4 +0 -0
- package/upload//344/270/213/350/275/275 copy 2.jpg +0 -0
- package/upload//344/270/213/350/275/275 copy.jpg +0 -0
- package/upload//344/270/213/350/275/275.jpg +0 -0
- 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.
|
|
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/
|
|
9
|
-
"module": "dist/lib/
|
|
10
|
-
"types": "dist/lib/
|
|
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,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":"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"}
|
|
@@ -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
|
-
}
|