@kevisual/oss 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +266 -152
- package/dist/index.js +36542 -112
- package/dist/services.d.ts +330 -0
- package/dist/services.js +36766 -0
- package/package.json +9 -14
- package/src/index.ts +2 -243
- package/src/s3/core.ts +82 -24
- package/src/s3/type.ts +7 -0
- package/src/services/config.ts +2 -2
- package/src/services/index.ts +1 -1
- package/src/test/common.ts +1 -1
- package/src/util/download.ts +69 -69
- package/dist/services/config.d.ts +0 -190
- package/dist/services/config.js +0 -358
- package/dist/services/index.d.ts +0 -235
- package/dist/services/index.js +0 -421
- package/src/core/copy-object.ts +0 -26
- package/src/core/type.ts +0 -87
package/dist/index.d.ts
CHANGED
|
@@ -1,162 +1,276 @@
|
|
|
1
|
-
|
|
1
|
+
import { CopyObjectCommandOutput, S3Client, GetObjectCommandOutput } from '@aws-sdk/client-s3';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
metadata?: ItemBucketMetadata;
|
|
4
|
+
type ItemBucketMetadata = Record<string, string>;
|
|
5
|
+
type UploadedObjectInfo = {
|
|
6
|
+
etag: string;
|
|
7
|
+
lastModified?: Date;
|
|
8
|
+
size?: number;
|
|
9
|
+
versionId: string;
|
|
10
|
+
metadata?: ItemBucketMetadata;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
type StatObjectResult = {
|
|
13
|
+
size: number;
|
|
14
|
+
etag: string;
|
|
15
|
+
lastModified: Date;
|
|
16
|
+
metaData: ItemBucketMetadata;
|
|
17
|
+
versionId?: string | null;
|
|
18
|
+
standardHeaders: {
|
|
19
|
+
contentType?: string;
|
|
20
|
+
cacheControl?: string;
|
|
21
|
+
contentDisposition?: string;
|
|
22
|
+
contentEncoding?: string;
|
|
23
|
+
contentLanguage?: string;
|
|
24
|
+
};
|
|
18
25
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
type ListFileObject = {
|
|
27
|
+
name: string;
|
|
28
|
+
size: number;
|
|
29
|
+
lastModified: Date;
|
|
30
|
+
etag: string;
|
|
24
31
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
type ListDirectoryObject = {
|
|
33
|
+
prefix: string;
|
|
34
|
+
size: number;
|
|
28
35
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
36
|
+
type ListObjectResult = ListFileObject | ListDirectoryObject;
|
|
37
|
+
interface OssBaseOperation {
|
|
38
|
+
prefix: string;
|
|
39
|
+
/**
|
|
40
|
+
* 设置前缀
|
|
41
|
+
* @param prefix 前缀
|
|
42
|
+
*/
|
|
43
|
+
setPrefix(prefix: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* 获取对象
|
|
46
|
+
* @param objectName 对象名
|
|
47
|
+
*/
|
|
48
|
+
getObject(objectName: string): Promise<any>;
|
|
49
|
+
/**
|
|
50
|
+
* 获取对象内容为字符串
|
|
51
|
+
* @param objectName 对象名
|
|
52
|
+
*/
|
|
53
|
+
getObjectAsString?(objectName: string): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* 获取对象内容为 JSON
|
|
56
|
+
* @param objectName 对象名
|
|
57
|
+
*/
|
|
58
|
+
getJson?(objectName: string): Promise<Record<string, any>>;
|
|
59
|
+
/**
|
|
60
|
+
* 上传对象
|
|
61
|
+
* @param objectName 对象名
|
|
62
|
+
* @param data 数据
|
|
63
|
+
* @param metaData 元数据
|
|
64
|
+
* @param opts 选项
|
|
65
|
+
*/
|
|
66
|
+
putObject(objectName: string, data: Buffer | string | Object | Readable, metaData?: ItemBucketMetadata, opts?: {
|
|
67
|
+
check?: boolean;
|
|
68
|
+
isStream?: boolean;
|
|
69
|
+
size?: number;
|
|
70
|
+
contentType?: string;
|
|
71
|
+
}): Promise<UploadedObjectInfo>;
|
|
72
|
+
/**
|
|
73
|
+
* 上传文件
|
|
74
|
+
* @param objectName 对象名
|
|
75
|
+
* @param filePath 文件路径
|
|
76
|
+
* @param metaData 元数据
|
|
77
|
+
*/
|
|
78
|
+
fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise<UploadedObjectInfo>;
|
|
79
|
+
/**
|
|
80
|
+
* 获取对象信息
|
|
81
|
+
* @param objectName 对象名
|
|
82
|
+
* @param checkFile 是否检查文件存在(不存在返回null而非抛错)
|
|
83
|
+
*/
|
|
84
|
+
statObject(objectName: string, checkFile?: boolean): Promise<StatObjectResult | null>;
|
|
85
|
+
/**
|
|
86
|
+
* 删除对象
|
|
87
|
+
* @param objectName 对象名
|
|
88
|
+
*/
|
|
89
|
+
deleteObject(objectName: string): Promise<any>;
|
|
90
|
+
/**
|
|
91
|
+
* 列出对象
|
|
92
|
+
* @param objectName 前缀
|
|
93
|
+
* @param opts 选项
|
|
94
|
+
*/
|
|
95
|
+
listObjects(objectName: string, opts?: {
|
|
96
|
+
/** 是否递归 */
|
|
97
|
+
recursive?: boolean;
|
|
98
|
+
/** 开始位置 */
|
|
99
|
+
startAfter?: string;
|
|
100
|
+
/** 最大返回数量 */
|
|
101
|
+
maxKeys?: number;
|
|
102
|
+
}): Promise<ListObjectResult[]>;
|
|
103
|
+
/**
|
|
104
|
+
* 获取完整的对象名称
|
|
105
|
+
* @param objectName 对象名
|
|
106
|
+
*/
|
|
107
|
+
getObjectName?(objectName: string): string;
|
|
108
|
+
/**
|
|
109
|
+
* 检查文件hash是否一致
|
|
110
|
+
* @param objectName 对象名
|
|
111
|
+
* @param hash hash值
|
|
112
|
+
* @param meta 元数据
|
|
113
|
+
*/
|
|
114
|
+
checkObjectHash?(objectName: string, hash: string, meta?: ItemBucketMetadata): Promise<{
|
|
115
|
+
success: boolean;
|
|
116
|
+
metaData: ItemBucketMetadata | null;
|
|
117
|
+
obj: StatObjectResult | null;
|
|
118
|
+
equalMeta?: boolean;
|
|
119
|
+
}>;
|
|
120
|
+
/**
|
|
121
|
+
* 获取元数据
|
|
122
|
+
* @param pathname 路径名
|
|
123
|
+
* @param meta 元数据
|
|
124
|
+
*/
|
|
125
|
+
getMetadata?(pathname: string, meta?: ItemBucketMetadata): ItemBucketMetadata;
|
|
126
|
+
/**
|
|
127
|
+
* 复制对象
|
|
128
|
+
* @param sourceObject 源对象
|
|
129
|
+
* @param targetObject 目标对象
|
|
130
|
+
*/
|
|
131
|
+
copyObject(sourceObject: string, targetObject: string): Promise<CopyObjectCommandOutput>;
|
|
132
|
+
/**
|
|
133
|
+
* 替换对象元数据
|
|
134
|
+
* @param objectName 对象名
|
|
135
|
+
* @param meta 新元数据
|
|
136
|
+
*/
|
|
137
|
+
replaceObject?(objectName: string, meta: ItemBucketMetadata): Promise<any>;
|
|
138
|
+
}
|
|
139
|
+
interface OssService extends OssBaseOperation {
|
|
140
|
+
owner: string;
|
|
83
141
|
}
|
|
84
|
-
|
|
85
|
-
|
|
142
|
+
|
|
143
|
+
type OssBaseOptions<T = {
|
|
144
|
+
[key: string]: any;
|
|
86
145
|
}> = {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
146
|
+
/**
|
|
147
|
+
* 已经初始化好的 S3Client
|
|
148
|
+
*/
|
|
149
|
+
client: S3Client;
|
|
150
|
+
/**
|
|
151
|
+
* 桶名
|
|
152
|
+
*/
|
|
153
|
+
bucketName: string;
|
|
154
|
+
/**
|
|
155
|
+
* 前缀
|
|
156
|
+
*/
|
|
157
|
+
prefix?: string;
|
|
99
158
|
} & T;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
159
|
+
declare class OssBase implements OssBaseOperation {
|
|
160
|
+
client: S3Client;
|
|
161
|
+
bucketName: string;
|
|
162
|
+
prefix: string;
|
|
163
|
+
/**
|
|
164
|
+
* 计算字符串或者对象的的md5值
|
|
165
|
+
*/
|
|
166
|
+
hash: (str: string | Buffer | Object) => string;
|
|
167
|
+
constructor(opts: OssBaseOptions);
|
|
168
|
+
setPrefix(prefix: string): void;
|
|
169
|
+
/**
|
|
170
|
+
* 获取对象
|
|
171
|
+
* @param objectName 对象名
|
|
172
|
+
*/
|
|
173
|
+
getObject(objectName: string): Promise<GetObjectCommandOutput>;
|
|
174
|
+
/**
|
|
175
|
+
* 获取对象内容为字符串
|
|
176
|
+
* @param objectName 对象名
|
|
177
|
+
*/
|
|
178
|
+
getObjectAsString(objectName: string): Promise<string>;
|
|
179
|
+
/**
|
|
180
|
+
* 获取对象内容为 JSON
|
|
181
|
+
* @param objectName 对象名
|
|
182
|
+
*/
|
|
183
|
+
getJson(objectName: string): Promise<Record<string, any>>;
|
|
184
|
+
/**
|
|
185
|
+
* 上传对象
|
|
186
|
+
* @param objectName 对象名
|
|
187
|
+
* @param data 数据
|
|
188
|
+
* @param metaData 元数据
|
|
189
|
+
* @param opts 选项
|
|
190
|
+
*/
|
|
191
|
+
putObject(objectName: string, data: Buffer | string | Object | Readable, metaData?: ItemBucketMetadata, opts?: {
|
|
192
|
+
check?: boolean;
|
|
193
|
+
isStream?: boolean;
|
|
194
|
+
size?: number;
|
|
195
|
+
contentType?: string;
|
|
196
|
+
}): Promise<UploadedObjectInfo>;
|
|
197
|
+
/**
|
|
198
|
+
* 上传文件
|
|
199
|
+
* @param objectName 对象名
|
|
200
|
+
* @param filePath 文件路径
|
|
201
|
+
* @param metaData 元数据
|
|
202
|
+
*/
|
|
203
|
+
fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise<UploadedObjectInfo>;
|
|
204
|
+
/**
|
|
205
|
+
* 删除对象
|
|
206
|
+
* @param objectName 对象名
|
|
207
|
+
*/
|
|
208
|
+
deleteObject(objectName: string): Promise<void>;
|
|
209
|
+
deleteObjects(objectNameList: string[]): Promise<void>;
|
|
210
|
+
/**
|
|
211
|
+
* 列出对象
|
|
212
|
+
* @param objectName 前缀
|
|
213
|
+
* @param opts 选项
|
|
214
|
+
*/
|
|
215
|
+
listObjects<IS_FILE = false>(objectName: string, opts?: {
|
|
216
|
+
recursive?: boolean;
|
|
217
|
+
startAfter?: string;
|
|
218
|
+
maxKeys?: number;
|
|
219
|
+
}): Promise<IS_FILE extends true ? ListFileObject[] : ListObjectResult[]>;
|
|
220
|
+
/**
|
|
221
|
+
* 获取对象信息
|
|
222
|
+
* @param objectName 对象名
|
|
223
|
+
* @param checkFile 是否检查文件存在(不存在返回null而非抛错)
|
|
224
|
+
*/
|
|
225
|
+
statObject(objectName: string, checkFile?: boolean): Promise<StatObjectResult | null>;
|
|
226
|
+
/**
|
|
227
|
+
* 获取完整的对象名称
|
|
228
|
+
* @param objectName 对象名
|
|
229
|
+
*/
|
|
230
|
+
getObjectName(objectName: string): string;
|
|
231
|
+
/**
|
|
232
|
+
* 检查文件hash是否一致
|
|
233
|
+
* @param objectName 对象名
|
|
234
|
+
* @param hash hash值
|
|
235
|
+
* @param meta 元数据
|
|
236
|
+
*/
|
|
237
|
+
checkObjectHash(objectName: string, hash: string, meta?: ItemBucketMetadata): Promise<{
|
|
238
|
+
success: boolean;
|
|
239
|
+
metaData: ItemBucketMetadata | null;
|
|
240
|
+
obj: StatObjectResult | null;
|
|
241
|
+
equalMeta?: boolean;
|
|
242
|
+
}>;
|
|
243
|
+
/**
|
|
244
|
+
* 获取元数据
|
|
245
|
+
* @param pathname 路径名
|
|
246
|
+
* @param meta 元数据
|
|
247
|
+
*/
|
|
248
|
+
getMetadata(pathname: string, meta?: ItemBucketMetadata): ItemBucketMetadata;
|
|
249
|
+
/**
|
|
250
|
+
* 复制对象
|
|
251
|
+
* @param sourceObject 源对象
|
|
252
|
+
* @param targetObject 目标对象
|
|
253
|
+
*/
|
|
254
|
+
copyObject(sourceObject: string, targetObject: string): Promise<any>;
|
|
255
|
+
/**
|
|
256
|
+
* 替换对象元数据
|
|
257
|
+
* @param objectName 对象名
|
|
258
|
+
* @param meta 新元数据
|
|
259
|
+
*/
|
|
260
|
+
replaceObject(objectName: string, meta: ItemBucketMetadata): Promise<any>;
|
|
261
|
+
/**
|
|
262
|
+
* 创建实例
|
|
263
|
+
*/
|
|
264
|
+
static create<T extends OssBase, U>(this: new (opts: OssBaseOptions<U>) => T, opts: OssBaseOptions<U>): T;
|
|
265
|
+
/**
|
|
266
|
+
* 从已有实例创建
|
|
267
|
+
*/
|
|
268
|
+
static fromBase<T extends OssBase, U>(this: new (opts: OssBaseOptions<U>) => T, createOpts: {
|
|
269
|
+
oss: OssBase;
|
|
270
|
+
opts: Partial<OssBaseOptions<U>>;
|
|
271
|
+
}): T;
|
|
160
272
|
}
|
|
273
|
+
declare const getStram: (data: GetObjectCommandOutput) => Readable;
|
|
161
274
|
|
|
162
|
-
export {};
|
|
275
|
+
export { OssBase, getStram };
|
|
276
|
+
export type { ItemBucketMetadata, ListDirectoryObject, ListFileObject, ListObjectResult, OssBaseOperation, OssBaseOptions, OssService, StatObjectResult, UploadedObjectInfo };
|