@memberjunction/storage 2.31.0 → 2.32.1

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 (33) hide show
  1. package/dist/drivers/AWSFileStorage.d.ts +26 -1
  2. package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
  3. package/dist/drivers/AWSFileStorage.js +287 -13
  4. package/dist/drivers/AWSFileStorage.js.map +1 -1
  5. package/dist/drivers/AzureFileStorage.d.ts +22 -1
  6. package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
  7. package/dist/drivers/AzureFileStorage.js +264 -20
  8. package/dist/drivers/AzureFileStorage.js.map +1 -1
  9. package/dist/drivers/DropboxFileStorage.d.ts +73 -0
  10. package/dist/drivers/DropboxFileStorage.d.ts.map +1 -0
  11. package/dist/drivers/DropboxFileStorage.js +463 -0
  12. package/dist/drivers/DropboxFileStorage.js.map +1 -0
  13. package/dist/drivers/GoogleDriveFileStorage.d.ts +73 -0
  14. package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -0
  15. package/dist/drivers/GoogleDriveFileStorage.js +542 -0
  16. package/dist/drivers/GoogleDriveFileStorage.js.map +1 -0
  17. package/dist/drivers/GoogleFileStorage.d.ts +20 -1
  18. package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
  19. package/dist/drivers/GoogleFileStorage.js +215 -2
  20. package/dist/drivers/GoogleFileStorage.js.map +1 -1
  21. package/dist/drivers/SharePointFileStorage.d.ts +81 -0
  22. package/dist/drivers/SharePointFileStorage.d.ts.map +1 -0
  23. package/dist/drivers/SharePointFileStorage.js +490 -0
  24. package/dist/drivers/SharePointFileStorage.js.map +1 -0
  25. package/dist/generic/FileStorageBase.d.ts +119 -0
  26. package/dist/generic/FileStorageBase.d.ts.map +1 -1
  27. package/dist/generic/FileStorageBase.js +18 -1
  28. package/dist/generic/FileStorageBase.js.map +1 -1
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -0
  32. package/dist/index.js.map +1 -1
  33. package/package.json +11 -4
@@ -1,12 +1,37 @@
1
- import { CreatePreAuthUploadUrlPayload, FileStorageBase } from '../generic/FileStorageBase';
1
+ /// <reference types="node" />
2
+ import { CreatePreAuthUploadUrlPayload, FileStorageBase, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
2
3
  export declare class AWSFileStorage extends FileStorageBase {
4
+ protected readonly providerName = "AWS S3";
3
5
  private _bucket;
4
6
  private _keyPrefix;
5
7
  private _client;
6
8
  constructor();
9
+ /**
10
+ * Normalizes the object name by ensuring it has the proper key prefix
11
+ *
12
+ * @param objectName The object name to normalize
13
+ * @returns The normalized object name with the proper prefix
14
+ */
15
+ private _normalizeKey;
16
+ /**
17
+ * Removes the prefix from a key to get the relative object name
18
+ *
19
+ * @param key The full key including the prefix
20
+ * @returns The object name without the prefix
21
+ */
22
+ private _removePrefix;
7
23
  CreatePreAuthUploadUrl(objectName: string): Promise<CreatePreAuthUploadUrlPayload>;
8
24
  CreatePreAuthDownloadUrl(objectName: string): Promise<string>;
9
25
  MoveObject(oldObjectName: string, newObjectName: string): Promise<boolean>;
10
26
  DeleteObject(objectName: string): Promise<boolean>;
27
+ ListObjects(prefix: string, delimiter?: string): Promise<StorageListResult>;
28
+ CreateDirectory(directoryPath: string): Promise<boolean>;
29
+ DeleteDirectory(directoryPath: string, recursive?: boolean): Promise<boolean>;
30
+ GetObjectMetadata(objectName: string): Promise<StorageObjectMetadata>;
31
+ GetObject(objectName: string): Promise<Buffer>;
32
+ PutObject(objectName: string, data: Buffer, contentType?: string, metadata?: Record<string, string>): Promise<boolean>;
33
+ CopyObject(sourceObjectName: string, destinationObjectName: string): Promise<boolean>;
34
+ ObjectExists(objectName: string): Promise<boolean>;
35
+ DirectoryExists(directoryPath: string): Promise<boolean>;
11
36
  }
12
37
  //# sourceMappingURL=AWSFileStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AWSFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/AWSFileStorage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE5F,qBACa,cAAe,SAAQ,eAAe;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAW;;IAmBb,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAQxF,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOvD,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAoBvD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAYhE"}
1
+ {"version":3,"file":"AWSFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/AWSFileStorage.ts"],"names":[],"mappings":";AAcA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,qBACa,cAAe,SAAQ,eAAe;IACjD,SAAS,CAAC,QAAQ,CAAC,YAAY,YAAY;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAW;;IAmB1B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAOR,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAgBxF,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOvD,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1E,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAalD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2DxE,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBxD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAiD3E,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkCrE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB9C,SAAS,CACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAwBN,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBrF,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlD,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CA6BtE"}
@@ -37,10 +37,12 @@ const client_s3_1 = require("@aws-sdk/client-s3");
37
37
  const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
38
38
  const global_1 = require("@memberjunction/global");
39
39
  const env = __importStar(require("env-var"));
40
+ const mime = __importStar(require("mime-types"));
40
41
  const FileStorageBase_1 = require("../generic/FileStorageBase");
41
42
  let AWSFileStorage = class AWSFileStorage extends FileStorageBase_1.FileStorageBase {
42
43
  constructor() {
43
44
  super();
45
+ this.providerName = 'AWS S3';
44
46
  const region = env.get('STORAGE_AWS_REGION').required().asString();
45
47
  this._bucket = env.get('STORAGE_AWS_BUCKET_NAME').required().asString();
46
48
  const keyPrefix = env.get('STORAGE_AWS_KEY_PREFIX').default('/').asString();
@@ -51,44 +53,316 @@ let AWSFileStorage = class AWSFileStorage extends FileStorageBase_1.FileStorageB
51
53
  };
52
54
  this._client = new client_s3_1.S3Client({ region, credentials });
53
55
  }
56
+ /**
57
+ * Normalizes the object name by ensuring it has the proper key prefix
58
+ *
59
+ * @param objectName The object name to normalize
60
+ * @returns The normalized object name with the proper prefix
61
+ */
62
+ _normalizeKey(objectName) {
63
+ if (objectName.startsWith(this._keyPrefix)) {
64
+ return objectName;
65
+ }
66
+ // Remove any leading slash from the object name to avoid double slashes
67
+ const cleanObjectName = objectName.startsWith('/') ? objectName.substring(1) : objectName;
68
+ return `${this._keyPrefix}${cleanObjectName}`;
69
+ }
70
+ /**
71
+ * Removes the prefix from a key to get the relative object name
72
+ *
73
+ * @param key The full key including the prefix
74
+ * @returns The object name without the prefix
75
+ */
76
+ _removePrefix(key) {
77
+ if (key.startsWith(this._keyPrefix)) {
78
+ return key.substring(this._keyPrefix.length);
79
+ }
80
+ return key;
81
+ }
54
82
  async CreatePreAuthUploadUrl(objectName) {
55
- const key = `${this._keyPrefix}${objectName}`;
56
- const command = new client_s3_1.PutObjectCommand({ Bucket: this._bucket, Key: key });
83
+ const key = this._normalizeKey(objectName);
84
+ // Determine content type based on file extension
85
+ const contentType = mime.lookup(objectName) || 'application/octet-stream';
86
+ const command = new client_s3_1.PutObjectCommand({
87
+ Bucket: this._bucket,
88
+ Key: key,
89
+ ContentType: contentType
90
+ });
57
91
  const UploadUrl = await (0, s3_request_presigner_1.getSignedUrl)(this._client, command, { expiresIn: 10 * 60 }); // 10 minutes
58
92
  return Promise.resolve({ UploadUrl });
59
93
  }
60
94
  CreatePreAuthDownloadUrl(objectName) {
61
- const key = `${this._keyPrefix}${objectName}`;
95
+ const key = this._normalizeKey(objectName);
62
96
  const command = new client_s3_1.GetObjectCommand({ Bucket: this._bucket, Key: key });
63
97
  return (0, s3_request_presigner_1.getSignedUrl)(this._client, command, { expiresIn: 10 * 60 }); // 10 minutes
64
98
  }
65
99
  async MoveObject(oldObjectName, newObjectName) {
66
- const oldKey = `${this._keyPrefix}${oldObjectName}`;
67
- const newKey = `${this._keyPrefix}${newObjectName}`;
100
+ return this.CopyObject(oldObjectName, newObjectName)
101
+ .then(copied => {
102
+ if (copied) {
103
+ return this.DeleteObject(oldObjectName);
104
+ }
105
+ return false;
106
+ });
107
+ }
108
+ async DeleteObject(objectName) {
109
+ const key = this._normalizeKey(objectName);
110
+ const command = new client_s3_1.DeleteObjectCommand({ Bucket: this._bucket, Key: key });
111
+ try {
112
+ await this._client.send(command);
113
+ return true;
114
+ }
115
+ catch (e) {
116
+ console.error('Error deleting object from S3 storage', { key, bucket: this._bucket });
117
+ console.error(e);
118
+ return false;
119
+ }
120
+ }
121
+ async ListObjects(prefix, delimiter = '/') {
122
+ const normalizedPrefix = this._normalizeKey(prefix);
123
+ const command = new client_s3_1.ListObjectsV2Command({
124
+ Bucket: this._bucket,
125
+ Prefix: normalizedPrefix,
126
+ Delimiter: delimiter
127
+ });
128
+ try {
129
+ const response = await this._client.send(command);
130
+ const objects = [];
131
+ const prefixes = [];
132
+ // Process regular objects
133
+ if (response.Contents) {
134
+ for (const item of response.Contents) {
135
+ if (!item.Key)
136
+ continue;
137
+ // Skip the directory placeholder object itself
138
+ if (item.Key === normalizedPrefix)
139
+ continue;
140
+ const relativePath = this._removePrefix(item.Key);
141
+ const pathParts = relativePath.split('/');
142
+ const name = pathParts[pathParts.length - 1];
143
+ const path = pathParts.slice(0, -1).join('/');
144
+ objects.push({
145
+ name,
146
+ path,
147
+ fullPath: relativePath,
148
+ size: item.Size || 0,
149
+ contentType: mime.lookup(item.Key) || 'application/octet-stream',
150
+ lastModified: item.LastModified || new Date(),
151
+ isDirectory: item.Key.endsWith('/'),
152
+ etag: item.ETag
153
+ });
154
+ }
155
+ }
156
+ // Process prefixes (directories)
157
+ if (response.CommonPrefixes) {
158
+ for (const item of response.CommonPrefixes) {
159
+ if (item.Prefix) {
160
+ const relativePrefix = this._removePrefix(item.Prefix);
161
+ prefixes.push(relativePrefix);
162
+ }
163
+ }
164
+ }
165
+ return { objects, prefixes };
166
+ }
167
+ catch (e) {
168
+ console.error('Error listing objects in S3 storage', { prefix: normalizedPrefix, bucket: this._bucket });
169
+ console.error(e);
170
+ return { objects: [], prefixes: [] };
171
+ }
172
+ }
173
+ async CreateDirectory(directoryPath) {
174
+ // S3 doesn't have real directories, so we create a zero-byte object with a trailing slash
175
+ if (!directoryPath.endsWith('/')) {
176
+ directoryPath = `${directoryPath}/`;
177
+ }
178
+ const key = this._normalizeKey(directoryPath);
179
+ const command = new client_s3_1.PutObjectCommand({
180
+ Bucket: this._bucket,
181
+ Key: key,
182
+ Body: '',
183
+ ContentType: 'application/x-directory'
184
+ });
185
+ try {
186
+ await this._client.send(command);
187
+ return true;
188
+ }
189
+ catch (e) {
190
+ console.error('Error creating directory in S3 storage', { key, bucket: this._bucket });
191
+ console.error(e);
192
+ return false;
193
+ }
194
+ }
195
+ async DeleteDirectory(directoryPath, recursive = false) {
196
+ if (!directoryPath.endsWith('/')) {
197
+ directoryPath = `${directoryPath}/`;
198
+ }
199
+ const key = this._normalizeKey(directoryPath);
200
+ if (!recursive) {
201
+ // Just delete the directory placeholder
202
+ return this.DeleteObject(directoryPath);
203
+ }
204
+ // For recursive delete, we need to list all objects under this prefix and delete them
205
+ try {
206
+ const command = new client_s3_1.ListObjectsV2Command({
207
+ Bucket: this._bucket,
208
+ Prefix: key
209
+ });
210
+ const response = await this._client.send(command);
211
+ if (!response.Contents || response.Contents.length === 0) {
212
+ // Empty directory, just delete the directory placeholder
213
+ return this.DeleteObject(directoryPath);
214
+ }
215
+ // Delete up to 1000 objects at a time (S3 limit)
216
+ const deleteObjectsCommand = new client_s3_1.DeleteObjectsCommand({
217
+ Bucket: this._bucket,
218
+ Delete: {
219
+ Objects: response.Contents
220
+ .filter(item => item.Key)
221
+ .map(item => ({ Key: item.Key }))
222
+ }
223
+ });
224
+ await this._client.send(deleteObjectsCommand);
225
+ // If we have more than 1000 objects, we'll need pagination, but that's beyond this implementation
226
+ // For a real-world implementation, you'd want to handle pagination for directories with more than 1000 objects
227
+ return true;
228
+ }
229
+ catch (e) {
230
+ console.error('Error deleting directory recursively from S3 storage', { key, bucket: this._bucket });
231
+ console.error(e);
232
+ return false;
233
+ }
234
+ }
235
+ async GetObjectMetadata(objectName) {
236
+ const key = this._normalizeKey(objectName);
237
+ const command = new client_s3_1.HeadObjectCommand({
238
+ Bucket: this._bucket,
239
+ Key: key
240
+ });
241
+ try {
242
+ const response = await this._client.send(command);
243
+ const relativePath = this._removePrefix(key);
244
+ const pathParts = relativePath.split('/');
245
+ const name = pathParts[pathParts.length - 1];
246
+ const path = pathParts.slice(0, -1).join('/');
247
+ return {
248
+ name,
249
+ path,
250
+ fullPath: relativePath,
251
+ size: response.ContentLength || 0,
252
+ contentType: response.ContentType || 'application/octet-stream',
253
+ lastModified: response.LastModified || new Date(),
254
+ isDirectory: key.endsWith('/'),
255
+ etag: response.ETag,
256
+ cacheControl: response.CacheControl,
257
+ customMetadata: response.Metadata
258
+ };
259
+ }
260
+ catch (e) {
261
+ console.error('Error getting object metadata from S3 storage', { key, bucket: this._bucket });
262
+ console.error(e);
263
+ throw new Error(`Object not found: ${objectName}`);
264
+ }
265
+ }
266
+ async GetObject(objectName) {
267
+ const key = this._normalizeKey(objectName);
268
+ const command = new client_s3_1.GetObjectCommand({
269
+ Bucket: this._bucket,
270
+ Key: key
271
+ });
272
+ try {
273
+ const response = await this._client.send(command);
274
+ if (!response.Body) {
275
+ throw new Error(`Empty response body for object: ${objectName}`);
276
+ }
277
+ // Convert readable stream to buffer
278
+ return Buffer.from(await response.Body.transformToByteArray());
279
+ }
280
+ catch (e) {
281
+ console.error('Error getting object from S3 storage', { key, bucket: this._bucket });
282
+ console.error(e);
283
+ throw new Error(`Failed to get object: ${objectName}`);
284
+ }
285
+ }
286
+ async PutObject(objectName, data, contentType, metadata) {
287
+ const key = this._normalizeKey(objectName);
288
+ // Determine content type based on file extension if not provided
289
+ const effectiveContentType = contentType || mime.lookup(objectName) || 'application/octet-stream';
290
+ const command = new client_s3_1.PutObjectCommand({
291
+ Bucket: this._bucket,
292
+ Key: key,
293
+ Body: data,
294
+ ContentType: effectiveContentType,
295
+ Metadata: metadata
296
+ });
297
+ try {
298
+ await this._client.send(command);
299
+ return true;
300
+ }
301
+ catch (e) {
302
+ console.error('Error putting object to S3 storage', { key, bucket: this._bucket });
303
+ console.error(e);
304
+ return false;
305
+ }
306
+ }
307
+ async CopyObject(sourceObjectName, destinationObjectName) {
308
+ const sourceKey = this._normalizeKey(sourceObjectName);
309
+ const destinationKey = this._normalizeKey(destinationObjectName);
68
310
  const copyCommand = new client_s3_1.CopyObjectCommand({
69
311
  Bucket: this._bucket,
70
- CopySource: `/${this._bucket}/${oldKey}`,
71
- Key: newKey,
312
+ CopySource: `/${this._bucket}/${sourceKey}`,
313
+ Key: destinationKey,
72
314
  });
73
315
  try {
74
316
  await this._client.send(copyCommand);
317
+ return true;
75
318
  }
76
319
  catch (e) {
77
- console.error('Error copying object in S3 storage', { oldKey, newKey, bucket: this._bucket });
320
+ console.error('Error copying object in S3 storage', {
321
+ sourceKey,
322
+ destinationKey,
323
+ bucket: this._bucket
324
+ });
78
325
  console.error(e);
79
326
  return false;
80
327
  }
81
- return this.DeleteObject(oldObjectName);
82
328
  }
83
- async DeleteObject(objectName) {
84
- const key = `${this._keyPrefix}${objectName}`;
85
- const command = new client_s3_1.DeleteObjectCommand({ Bucket: this._bucket, Key: key });
329
+ async ObjectExists(objectName) {
330
+ const key = this._normalizeKey(objectName);
331
+ const command = new client_s3_1.HeadObjectCommand({
332
+ Bucket: this._bucket,
333
+ Key: key
334
+ });
86
335
  try {
87
336
  await this._client.send(command);
88
337
  return true;
89
338
  }
90
339
  catch (e) {
91
- console.error('Error deleting object from S3 storage', { key, bucket: this._bucket });
340
+ // If the object doesn't exist, HeadObject will throw an error
341
+ return false;
342
+ }
343
+ }
344
+ async DirectoryExists(directoryPath) {
345
+ if (!directoryPath.endsWith('/')) {
346
+ directoryPath = `${directoryPath}/`;
347
+ }
348
+ const key = this._normalizeKey(directoryPath);
349
+ // Method 1: Check if the directory placeholder exists
350
+ const placeholderExists = await this.ObjectExists(directoryPath);
351
+ if (placeholderExists) {
352
+ return true;
353
+ }
354
+ // Method 2: Check if any objects exist with this prefix
355
+ const command = new client_s3_1.ListObjectsV2Command({
356
+ Bucket: this._bucket,
357
+ Prefix: key,
358
+ MaxKeys: 1
359
+ });
360
+ try {
361
+ const response = await this._client.send(command);
362
+ return !!(response.Contents && response.Contents.length > 0);
363
+ }
364
+ catch (e) {
365
+ console.error('Error checking if directory exists in S3 storage', { key, bucket: this._bucket });
92
366
  console.error(e);
93
367
  return false;
94
368
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AWSFileStorage.js","sourceRoot":"","sources":["../../src/drivers/AWSFileStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AWSFileStorage.js","sourceRoot":"","sources":["../../src/drivers/AWSFileStorage.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,33 @@
1
- import { CreatePreAuthUploadUrlPayload, FileStorageBase } from '../generic/FileStorageBase';
1
+ /// <reference types="node" />
2
+ import { CreatePreAuthUploadUrlPayload, FileStorageBase, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
2
3
  export declare class AzureFileStorage extends FileStorageBase {
4
+ protected readonly providerName = "Azure Blob Storage";
3
5
  private _sharedKeyCredential;
4
6
  private _container;
5
7
  private _accountName;
8
+ private _containerClient;
9
+ private _blobServiceClient;
6
10
  constructor();
11
+ /**
12
+ * Creates a BlobClient for the specified object
13
+ */
14
+ private _getBlobClient;
15
+ /**
16
+ * Normalize directory path to ensure it ends with a slash
17
+ */
18
+ private _normalizeDirectoryPath;
7
19
  CreatePreAuthUploadUrl(objectName: string): Promise<CreatePreAuthUploadUrlPayload>;
8
20
  CreatePreAuthDownloadUrl(objectName: string): Promise<string>;
9
21
  MoveObject(oldObjectName: string, newObjectName: string): Promise<boolean>;
10
22
  DeleteObject(objectName: string): Promise<boolean>;
23
+ ListObjects(prefix: string, delimiter?: string): Promise<StorageListResult>;
24
+ CreateDirectory(directoryPath: string): Promise<boolean>;
25
+ DeleteDirectory(directoryPath: string, recursive?: boolean): Promise<boolean>;
26
+ GetObjectMetadata(objectName: string): Promise<StorageObjectMetadata>;
27
+ GetObject(objectName: string): Promise<Buffer>;
28
+ PutObject(objectName: string, data: Buffer, contentType?: string, metadata?: Record<string, string>): Promise<boolean>;
29
+ CopyObject(sourceObjectName: string, destinationObjectName: string): Promise<boolean>;
30
+ ObjectExists(objectName: string): Promise<boolean>;
31
+ DirectoryExists(directoryPath: string): Promise<boolean>;
11
32
  }
12
33
  //# sourceMappingURL=AzureFileStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AzureFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/AzureFileStorage.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE5F,qBACa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;;IAYtB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAoBlF,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBvD,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAsBvD,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAMhE"}
1
+ {"version":3,"file":"AzureFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/AzureFileStorage.ts"],"names":[],"mappings":";AAiBA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,qBACa,gBAAiB,SAAQ,eAAe;IACnD,SAAS,CAAC,QAAQ,CAAC,YAAY,wBAAwB;IACvD,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;;IAoB9C;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAIxB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAoBlF,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBvD,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe1E,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6DxE,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBxD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC3E,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4BrE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB9C,SAAS,CACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAwBN,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBrF,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWlD,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CA2BtE"}