@kevisual/oss 0.0.15 → 0.0.17

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 CHANGED
@@ -1,162 +1,265 @@
1
- // Generated by dts-bundle-generator v9.5.1
1
+ import { CopyObjectCommandOutput, S3Client, GetObjectCommandOutput } from '@aws-sdk/client-s3';
2
+ import { Readable } from 'node:stream';
2
3
 
3
- import { Client, ItemBucketMetadata } from 'minio';
4
-
5
- export type UploadedObjectInfo = {
6
- etag: string;
7
- lastModified?: Date;
8
- size?: number;
9
- versionId: string;
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
- export type StatObjectResult = {
13
- size: number;
14
- etag: string;
15
- lastModified: Date;
16
- metaData: ItemBucketMetadata;
17
- versionId?: string | null;
12
+ type StatObjectResult = {
13
+ size: number;
14
+ etag: string;
15
+ lastModified: Date;
16
+ metaData: ItemBucketMetadata;
17
+ versionId?: string | null;
18
18
  };
19
- export type ListFileObject = {
20
- name: string;
21
- size: number;
22
- lastModified: Date;
23
- etag: string;
19
+ type ListFileObject = {
20
+ name: string;
21
+ size: number;
22
+ lastModified: Date;
23
+ etag: string;
24
24
  };
25
- export type ListDirectoryObject = {
26
- prefix: string;
27
- size: number;
25
+ type ListDirectoryObject = {
26
+ prefix: string;
27
+ size: number;
28
28
  };
29
- export type ListObjectResult = ListFileObject | ListDirectoryObject;
30
- export interface OssBaseOperation {
31
- prefix: string;
32
- setPrefix(prefix: string): void;
33
- /**
34
- * 获取对象
35
- * @param objectName 对象名
36
- */
37
- getObject(objectName: string): Promise<any>;
38
- /**
39
- * 上传对象
40
- * @param objectName 对象名
41
- * @param data 数据
42
- */
43
- putObject(objectName: string, data: Buffer | string, metaData?: ItemBucketMetadata): Promise<UploadedObjectInfo>;
44
- /**
45
- * 上传文件
46
- * @param objectName 对象名
47
- * @param filePath 文件路径
48
- */
49
- fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise<UploadedObjectInfo>;
50
- /**
51
- * 获取对象信息
52
- * @param objectName 对象名
53
- */
54
- statObject(objectName: string): Promise<StatObjectResult>;
55
- /**
56
- * 删除对象
57
- * @param objectName 对象名
58
- */
59
- deleteObject(objectName: string): Promise<any>;
60
- /**
61
- * 列出对象
62
- * @param objectName 对象名
63
- * @param opts 选项
64
- * @param opts.recursive 是否递归
65
- * @param opts.startAfter 开始位置
66
- */
67
- listObjects(objectName: string, opts?: {
68
- /**
69
- * 是否递归
70
- */
71
- recursive?: boolean;
72
- /**
73
- * 开始位置
74
- */
75
- startAfter?: string;
76
- }): Promise<ListObjectResult[]>;
77
- /**
78
- * 复制对象
79
- * @param sourceObject 源对象
80
- * @param targetObject 目标对象
81
- */
82
- copyObject: Client["copyObject"];
29
+ type ListObjectResult = ListFileObject | ListDirectoryObject;
30
+ interface OssBaseOperation {
31
+ prefix: string;
32
+ /**
33
+ * 设置前缀
34
+ * @param prefix 前缀
35
+ */
36
+ setPrefix(prefix: string): void;
37
+ /**
38
+ * 获取对象
39
+ * @param objectName 对象名
40
+ */
41
+ getObject(objectName: string): Promise<any>;
42
+ /**
43
+ * 获取对象内容为字符串
44
+ * @param objectName 对象名
45
+ */
46
+ getObjectAsString?(objectName: string): Promise<string>;
47
+ /**
48
+ * 获取对象内容为 JSON
49
+ * @param objectName 对象名
50
+ */
51
+ getJson?(objectName: string): Promise<Record<string, any>>;
52
+ /**
53
+ * 上传对象
54
+ * @param objectName 对象名
55
+ * @param data 数据
56
+ * @param metaData 元数据
57
+ * @param opts 选项
58
+ */
59
+ putObject(objectName: string, data: Buffer | string | Object | Readable, metaData?: ItemBucketMetadata, opts?: {
60
+ check?: boolean;
61
+ isStream?: boolean;
62
+ size?: number;
63
+ contentType?: string;
64
+ }): Promise<UploadedObjectInfo>;
65
+ /**
66
+ * 上传文件
67
+ * @param objectName 对象名
68
+ * @param filePath 文件路径
69
+ * @param metaData 元数据
70
+ */
71
+ fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise<UploadedObjectInfo>;
72
+ /**
73
+ * 获取对象信息
74
+ * @param objectName 对象名
75
+ * @param checkFile 是否检查文件存在(不存在返回null而非抛错)
76
+ */
77
+ statObject(objectName: string, checkFile?: boolean): Promise<StatObjectResult | null>;
78
+ /**
79
+ * 删除对象
80
+ * @param objectName 对象名
81
+ */
82
+ deleteObject(objectName: string): Promise<any>;
83
+ /**
84
+ * 列出对象
85
+ * @param objectName 前缀
86
+ * @param opts 选项
87
+ */
88
+ listObjects(objectName: string, opts?: {
89
+ /** 是否递归 */
90
+ recursive?: boolean;
91
+ /** 开始位置 */
92
+ startAfter?: string;
93
+ /** 最大返回数量 */
94
+ maxKeys?: number;
95
+ }): Promise<ListObjectResult[]>;
96
+ /**
97
+ * 获取完整的对象名称
98
+ * @param objectName 对象名
99
+ */
100
+ getObjectName?(objectName: string): string;
101
+ /**
102
+ * 检查文件hash是否一致
103
+ * @param objectName 对象名
104
+ * @param hash hash值
105
+ * @param meta 元数据
106
+ */
107
+ checkObjectHash?(objectName: string, hash: string, meta?: ItemBucketMetadata): Promise<{
108
+ success: boolean;
109
+ metaData: ItemBucketMetadata | null;
110
+ obj: StatObjectResult | null;
111
+ equalMeta?: boolean;
112
+ }>;
113
+ /**
114
+ * 获取元数据
115
+ * @param pathname 路径名
116
+ * @param meta 元数据
117
+ */
118
+ getMetadata?(pathname: string, meta?: ItemBucketMetadata): ItemBucketMetadata;
119
+ /**
120
+ * 复制对象
121
+ * @param sourceObject 源对象
122
+ * @param targetObject 目标对象
123
+ */
124
+ copyObject(sourceObject: string, targetObject: string): Promise<CopyObjectCommandOutput>;
125
+ /**
126
+ * 替换对象元数据
127
+ * @param objectName 对象名
128
+ * @param meta 新元数据
129
+ */
130
+ replaceObject?(objectName: string, meta: ItemBucketMetadata): Promise<any>;
83
131
  }
84
- export type OssBaseOptions<T = {
85
- [key: string]: any;
132
+
133
+ type OssBaseOptions<T = {
134
+ [key: string]: any;
86
135
  }> = {
87
- /**
88
- * 已经初始化好的minio client
89
- */
90
- client: Client;
91
- /**
92
- * 桶名
93
- */
94
- bucketName: string;
95
- /**
96
- * 前缀
97
- */
98
- prefix?: string;
136
+ /**
137
+ * 已经初始化好的 S3Client
138
+ */
139
+ client: S3Client;
140
+ /**
141
+ * 桶名
142
+ */
143
+ bucketName: string;
144
+ /**
145
+ * 前缀
146
+ */
147
+ prefix?: string;
99
148
  } & T;
100
- export declare class OssBase implements OssBaseOperation {
101
- client?: Client;
102
- bucketName: string;
103
- prefix: string;
104
- /**
105
- * 计算字符串或者对象的的md5值
106
- */
107
- hash: (str: string | Buffer | Object) => string;
108
- constructor(opts: OssBaseOptions);
109
- setPrefix(prefix: string): void;
110
- getObject(objectName: string): Promise<import("node:stream").Readable>;
111
- getJson(objectName: string): Promise<Record<string, any>>;
112
- /**
113
- * 上传文件, 当是流的时候,中断之后的etag会变,所以传递的时候不要嵌套async await,例如 busboy 监听文件流内部的时候,不要用check
114
- * @param objectName
115
- * @param data
116
- * @param metaData
117
- * @param options 如果文件本身存在,则复制原有的meta的内容
118
- * @returns
119
- */
120
- putObject(objectName: string, data: Buffer | string | Object, metaData?: ItemBucketMetadata, opts?: {
121
- check?: boolean;
122
- isStream?: boolean;
123
- size?: number;
124
- }): Promise<import("node_modules/minio/dist/main/internal/type.js").UploadedObjectInfo>;
125
- deleteObject(objectName: string): Promise<void>;
126
- listObjects<IS_FILE = false>(objectName: string, opts?: {
127
- recursive?: boolean;
128
- startAfter?: string;
129
- }): Promise<IS_FILE extends true ? ListFileObject[] : ListObjectResult[]>;
130
- fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise<any>;
131
- /**
132
- * 获取完整的对象名称
133
- * @param objectName
134
- * @returns
135
- */
136
- getObjectName(objectName: string): Promise<string>;
137
- statObject(objectName: string, checkFile?: boolean): Promise<import("minio").BucketItemStat>;
138
- /**
139
- * 检查文件hash是否一致
140
- * @param objectName
141
- * @param hash
142
- * @returns
143
- */
144
- checkObjectHash(objectName: string, hash: string, meta?: ItemBucketMetadata): Promise<{
145
- success: boolean;
146
- metaData: ItemBucketMetadata | null;
147
- obj: any;
148
- equalMeta?: boolean;
149
- }>;
150
- getMetadata(pathname: string, meta?: ItemBucketMetadata): ItemBucketMetadata;
151
- copyObject(sourceObject: any, targetObject: any): Promise<import("node_modules/minio/dist/main/internal/type.js").CopyObjectResult>;
152
- replaceObject(objectName: string, meta: {
153
- [key: string]: string;
154
- }): Promise<import("node_modules/minio/dist/main/internal/type.js").CopyObjectResult>;
155
- static create<T extends OssBase, U>(this: new (opts: OssBaseOptions<U>) => T, opts: OssBaseOptions<U>): T;
156
- static fromBase<T extends OssBase, U>(this: new (opts: OssBaseOptions<U>) => T, createOpts: {
157
- oss: OssBase;
158
- opts: Partial<OssBaseOptions<U>>;
159
- }): T;
149
+ declare class OssBase implements OssBaseOperation {
150
+ client: S3Client;
151
+ bucketName: string;
152
+ prefix: string;
153
+ /**
154
+ * 计算字符串或者对象的的md5值
155
+ */
156
+ hash: (str: string | Buffer | Object) => string;
157
+ constructor(opts: OssBaseOptions);
158
+ setPrefix(prefix: string): void;
159
+ /**
160
+ * 获取对象
161
+ * @param objectName 对象名
162
+ */
163
+ getObject(objectName: string): Promise<GetObjectCommandOutput>;
164
+ /**
165
+ * 获取对象内容为字符串
166
+ * @param objectName 对象名
167
+ */
168
+ getObjectAsString(objectName: string): Promise<string>;
169
+ /**
170
+ * 获取对象内容为 JSON
171
+ * @param objectName 对象名
172
+ */
173
+ getJson(objectName: string): Promise<Record<string, any>>;
174
+ /**
175
+ * 上传对象
176
+ * @param objectName 对象名
177
+ * @param data 数据
178
+ * @param metaData 元数据
179
+ * @param opts 选项
180
+ */
181
+ putObject(objectName: string, data: Buffer | string | Object | Readable, metaData?: ItemBucketMetadata, opts?: {
182
+ check?: boolean;
183
+ isStream?: boolean;
184
+ size?: number;
185
+ contentType?: string;
186
+ }): Promise<UploadedObjectInfo>;
187
+ /**
188
+ * 上传文件
189
+ * @param objectName 对象名
190
+ * @param filePath 文件路径
191
+ * @param metaData 元数据
192
+ */
193
+ fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise<UploadedObjectInfo>;
194
+ /**
195
+ * 删除对象
196
+ * @param objectName 对象名
197
+ */
198
+ deleteObject(objectName: string): Promise<void>;
199
+ deleteObjects(objectNameList: string[]): Promise<void>;
200
+ /**
201
+ * 列出对象
202
+ * @param objectName 前缀
203
+ * @param opts 选项
204
+ */
205
+ listObjects<IS_FILE = false>(objectName: string, opts?: {
206
+ recursive?: boolean;
207
+ startAfter?: string;
208
+ maxKeys?: number;
209
+ }): Promise<IS_FILE extends true ? ListFileObject[] : ListObjectResult[]>;
210
+ /**
211
+ * 获取对象信息
212
+ * @param objectName 对象名
213
+ * @param checkFile 是否检查文件存在(不存在返回null而非抛错)
214
+ */
215
+ statObject(objectName: string, checkFile?: boolean): Promise<StatObjectResult | null>;
216
+ /**
217
+ * 获取完整的对象名称
218
+ * @param objectName 对象名
219
+ */
220
+ getObjectName(objectName: string): string;
221
+ /**
222
+ * 检查文件hash是否一致
223
+ * @param objectName 对象名
224
+ * @param hash hash值
225
+ * @param meta 元数据
226
+ */
227
+ checkObjectHash(objectName: string, hash: string, meta?: ItemBucketMetadata): Promise<{
228
+ success: boolean;
229
+ metaData: ItemBucketMetadata | null;
230
+ obj: StatObjectResult | null;
231
+ equalMeta?: boolean;
232
+ }>;
233
+ /**
234
+ * 获取元数据
235
+ * @param pathname 路径名
236
+ * @param meta 元数据
237
+ */
238
+ getMetadata(pathname: string, meta?: ItemBucketMetadata): ItemBucketMetadata;
239
+ /**
240
+ * 复制对象
241
+ * @param sourceObject 源对象
242
+ * @param targetObject 目标对象
243
+ */
244
+ copyObject(sourceObject: string, targetObject: string): Promise<any>;
245
+ /**
246
+ * 替换对象元数据
247
+ * @param objectName 对象名
248
+ * @param meta 新元数据
249
+ */
250
+ replaceObject(objectName: string, meta: ItemBucketMetadata): Promise<any>;
251
+ /**
252
+ * 创建实例
253
+ */
254
+ static create<T extends OssBase, U>(this: new (opts: OssBaseOptions<U>) => T, opts: OssBaseOptions<U>): T;
255
+ /**
256
+ * 从已有实例创建
257
+ */
258
+ static fromBase<T extends OssBase, U>(this: new (opts: OssBaseOptions<U>) => T, createOpts: {
259
+ oss: OssBase;
260
+ opts: Partial<OssBaseOptions<U>>;
261
+ }): T;
160
262
  }
161
263
 
162
- export {};
264
+ export { OssBase };
265
+ export type { OssBaseOptions };