@memberjunction/storage 2.38.0 → 2.40.0
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/drivers/AWSFileStorage.d.ts +360 -4
- package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
- package/dist/drivers/AWSFileStorage.js +357 -4
- package/dist/drivers/AWSFileStorage.js.map +1 -1
- package/dist/drivers/AzureFileStorage.d.ts +362 -2
- package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
- package/dist/drivers/AzureFileStorage.js +357 -2
- package/dist/drivers/AzureFileStorage.js.map +1 -1
- package/dist/drivers/BoxFileStorage.d.ts +539 -20
- package/dist/drivers/BoxFileStorage.d.ts.map +1 -1
- package/dist/drivers/BoxFileStorage.js +521 -20
- package/dist/drivers/BoxFileStorage.js.map +1 -1
- package/dist/drivers/DropboxFileStorage.d.ts +437 -15
- package/dist/drivers/DropboxFileStorage.d.ts.map +1 -1
- package/dist/drivers/DropboxFileStorage.js +431 -15
- package/dist/drivers/DropboxFileStorage.js.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.d.ts +342 -16
- package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.js +340 -16
- package/dist/drivers/GoogleDriveFileStorage.js.map +1 -1
- package/dist/drivers/GoogleFileStorage.d.ts +358 -2
- package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleFileStorage.js +356 -2
- package/dist/drivers/GoogleFileStorage.js.map +1 -1
- package/dist/drivers/SharePointFileStorage.d.ts +434 -20
- package/dist/drivers/SharePointFileStorage.d.ts.map +1 -1
- package/dist/drivers/SharePointFileStorage.js +453 -22
- package/dist/drivers/SharePointFileStorage.js.map +1 -1
- package/dist/generic/FileStorageBase.d.ts +326 -108
- package/dist/generic/FileStorageBase.d.ts.map +1 -1
- package/dist/generic/FileStorageBase.js +54 -6
- package/dist/generic/FileStorageBase.js.map +1 -1
- package/dist/util.d.ts +125 -18
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +125 -18
- package/dist/util.js.map +1 -1
- package/package.json +4 -4
- package/readme.md +211 -1
|
@@ -38,22 +38,70 @@ const global_1 = require("@memberjunction/global");
|
|
|
38
38
|
const env = __importStar(require("env-var"));
|
|
39
39
|
const mime = __importStar(require("mime-types"));
|
|
40
40
|
const FileStorageBase_1 = require("../generic/FileStorageBase");
|
|
41
|
+
/**
|
|
42
|
+
* Google Cloud Storage implementation of the FileStorageBase interface.
|
|
43
|
+
*
|
|
44
|
+
* This class provides methods for interacting with Google Cloud Storage as a file storage provider.
|
|
45
|
+
* It implements all the abstract methods defined in FileStorageBase and handles Google-specific
|
|
46
|
+
* authentication, authorization, and file operations.
|
|
47
|
+
*
|
|
48
|
+
* It requires the following environment variables to be set:
|
|
49
|
+
* - STORAGE_GOOGLE_KEY_JSON: A JSON object containing Google Cloud service account credentials
|
|
50
|
+
* - STORAGE_GOOGLE_BUCKET_NAME: The GCS bucket name
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Create an instance of GoogleFileStorage
|
|
55
|
+
* const gcsStorage = new GoogleFileStorage();
|
|
56
|
+
*
|
|
57
|
+
* // Generate a pre-authenticated upload URL
|
|
58
|
+
* const { UploadUrl } = await gcsStorage.CreatePreAuthUploadUrl('documents/report.pdf');
|
|
59
|
+
*
|
|
60
|
+
* // Generate a pre-authenticated download URL
|
|
61
|
+
* const downloadUrl = await gcsStorage.CreatePreAuthDownloadUrl('documents/report.pdf');
|
|
62
|
+
*
|
|
63
|
+
* // List files in a directory
|
|
64
|
+
* const files = await gcsStorage.ListObjects('documents/');
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
41
67
|
let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileStorageBase {
|
|
68
|
+
/**
|
|
69
|
+
* Creates a new instance of GoogleFileStorage.
|
|
70
|
+
*
|
|
71
|
+
* Initializes the connection to Google Cloud Storage using environment variables.
|
|
72
|
+
* Throws an error if any required environment variables are missing.
|
|
73
|
+
*/
|
|
42
74
|
constructor() {
|
|
43
75
|
super();
|
|
76
|
+
/** The name of this storage provider, used in error messages */
|
|
44
77
|
this.providerName = 'Google Cloud Storage';
|
|
45
78
|
const credentials = env.get('STORAGE_GOOGLE_KEY_JSON').required().asJsonObject();
|
|
46
79
|
this._client = new storage_1.Storage({ credentials });
|
|
47
80
|
this._bucket = env.get('STORAGE_GOOGLE_BUCKET_NAME').required().asString();
|
|
48
81
|
}
|
|
49
82
|
/**
|
|
50
|
-
* Normalizes directory paths to ensure they end with a slash
|
|
83
|
+
* Normalizes directory paths to ensure they end with a slash.
|
|
84
|
+
*
|
|
85
|
+
* This is a helper method used internally to ensure consistency in
|
|
86
|
+
* directory path representation. Google Cloud Storage doesn't have actual
|
|
87
|
+
* directories, so we use a trailing slash to simulate them.
|
|
88
|
+
*
|
|
89
|
+
* @param path - The directory path to normalize
|
|
90
|
+
* @returns The normalized path with a trailing slash
|
|
91
|
+
* @private
|
|
51
92
|
*/
|
|
52
93
|
_normalizeDirectoryPath(path) {
|
|
53
94
|
return path.endsWith('/') ? path : path + '/';
|
|
54
95
|
}
|
|
55
96
|
/**
|
|
56
|
-
* Converts metadata to a string map for consistent handling
|
|
97
|
+
* Converts metadata to a string map for consistent handling.
|
|
98
|
+
*
|
|
99
|
+
* This is a helper method used internally to ensure that all metadata
|
|
100
|
+
* values are strings, as required by the StorageObjectMetadata type.
|
|
101
|
+
*
|
|
102
|
+
* @param metadata - The metadata object to convert
|
|
103
|
+
* @returns A record with string keys and string values
|
|
104
|
+
* @private
|
|
57
105
|
*/
|
|
58
106
|
_convertMetadataToStringMap(metadata) {
|
|
59
107
|
if (!metadata)
|
|
@@ -64,6 +112,25 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
64
112
|
}
|
|
65
113
|
return result;
|
|
66
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Creates a pre-authenticated upload URL for an object in Google Cloud Storage.
|
|
117
|
+
*
|
|
118
|
+
* This method generates a signed URL that allows for uploading an object
|
|
119
|
+
* to GCS without needing Google Cloud credentials. The URL is valid for
|
|
120
|
+
* 10 minutes and includes the content type based on the file extension.
|
|
121
|
+
*
|
|
122
|
+
* @param objectName - The name of the object to upload (including any path/directory)
|
|
123
|
+
* @returns A Promise resolving to an object with the upload URL
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* // Generate a pre-authenticated upload URL for a PDF file
|
|
128
|
+
* const { UploadUrl } = await gcsStorage.CreatePreAuthUploadUrl('documents/report.pdf');
|
|
129
|
+
*
|
|
130
|
+
* // The URL can be used with fetch or other HTTP clients to upload the file
|
|
131
|
+
* console.log(UploadUrl);
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
67
134
|
async CreatePreAuthUploadUrl(objectName) {
|
|
68
135
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
69
136
|
const options = {
|
|
@@ -75,6 +142,25 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
75
142
|
const [UploadUrl] = await file.getSignedUrl(options);
|
|
76
143
|
return { UploadUrl };
|
|
77
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Creates a pre-authenticated download URL for an object in Google Cloud Storage.
|
|
147
|
+
*
|
|
148
|
+
* This method generates a signed URL that allows for downloading an object
|
|
149
|
+
* from GCS without needing Google Cloud credentials. The URL is valid for
|
|
150
|
+
* 10 minutes and can be shared with clients.
|
|
151
|
+
*
|
|
152
|
+
* @param objectName - The name of the object to download (including any path/directory)
|
|
153
|
+
* @returns A Promise resolving to the download URL
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* // Generate a pre-authenticated download URL for a PDF file
|
|
158
|
+
* const downloadUrl = await gcsStorage.CreatePreAuthDownloadUrl('documents/report.pdf');
|
|
159
|
+
*
|
|
160
|
+
* // The URL can be shared with users or used in applications for direct download
|
|
161
|
+
* console.log(downloadUrl);
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
78
164
|
async CreatePreAuthDownloadUrl(objectName) {
|
|
79
165
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
80
166
|
const options = {
|
|
@@ -85,6 +171,32 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
85
171
|
const [url] = await file.getSignedUrl(options);
|
|
86
172
|
return url;
|
|
87
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Moves an object from one location to another within Google Cloud Storage.
|
|
176
|
+
*
|
|
177
|
+
* Unlike some other storage providers, GCS has a native rename operation
|
|
178
|
+
* that can be used to efficiently move objects without needing to copy
|
|
179
|
+
* and delete. This method leverages that capability.
|
|
180
|
+
*
|
|
181
|
+
* @param oldObjectName - The current name/path of the object
|
|
182
|
+
* @param newObjectName - The new name/path for the object
|
|
183
|
+
* @returns A Promise resolving to a boolean indicating success
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* // Move a file from drafts to published folder
|
|
188
|
+
* const success = await gcsStorage.MoveObject(
|
|
189
|
+
* 'drafts/report.docx',
|
|
190
|
+
* 'published/final-report.docx'
|
|
191
|
+
* );
|
|
192
|
+
*
|
|
193
|
+
* if (success) {
|
|
194
|
+
* console.log('File successfully moved');
|
|
195
|
+
* } else {
|
|
196
|
+
* console.log('Failed to move file');
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
88
200
|
async MoveObject(oldObjectName, newObjectName) {
|
|
89
201
|
try {
|
|
90
202
|
const response = await this._client.bucket(this._bucket).file(oldObjectName).rename(newObjectName);
|
|
@@ -96,6 +208,28 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
96
208
|
return false;
|
|
97
209
|
}
|
|
98
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Deletes an object from Google Cloud Storage.
|
|
213
|
+
*
|
|
214
|
+
* This method attempts to delete the specified object. It uses the
|
|
215
|
+
* ignoreNotFound option to ensure it returns true even if the object
|
|
216
|
+
* didn't exist.
|
|
217
|
+
*
|
|
218
|
+
* @param objectName - The name of the object to delete (including any path/directory)
|
|
219
|
+
* @returns A Promise resolving to a boolean indicating success
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* // Delete a temporary file
|
|
224
|
+
* const deleted = await gcsStorage.DeleteObject('temp/report-draft.pdf');
|
|
225
|
+
*
|
|
226
|
+
* if (deleted) {
|
|
227
|
+
* console.log('File successfully deleted');
|
|
228
|
+
* } else {
|
|
229
|
+
* console.log('Failed to delete file');
|
|
230
|
+
* }
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
99
233
|
async DeleteObject(objectName) {
|
|
100
234
|
try {
|
|
101
235
|
await this._client.bucket(this._bucket).file(objectName).delete({ ignoreNotFound: true });
|
|
@@ -107,6 +241,37 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
107
241
|
return false;
|
|
108
242
|
}
|
|
109
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Lists objects with the specified prefix in Google Cloud Storage.
|
|
246
|
+
*
|
|
247
|
+
* This method returns a list of objects (files) and prefixes (directories)
|
|
248
|
+
* under the specified path prefix. It uses the GCS getFiles API which
|
|
249
|
+
* supports delimiter-based hierarchy simulation.
|
|
250
|
+
*
|
|
251
|
+
* Note: This implementation fetches metadata for each file, which can be
|
|
252
|
+
* inefficient for directories with many files. In a production environment,
|
|
253
|
+
* you might want to optimize this for large directories.
|
|
254
|
+
*
|
|
255
|
+
* @param prefix - The path prefix to list objects from (e.g., 'documents/')
|
|
256
|
+
* @param delimiter - The character used to simulate directory structure, defaults to '/'
|
|
257
|
+
* @returns A Promise resolving to a StorageListResult containing objects and prefixes
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* // List all files and directories in the documents folder
|
|
262
|
+
* const result = await gcsStorage.ListObjects('documents/');
|
|
263
|
+
*
|
|
264
|
+
* // Process files
|
|
265
|
+
* for (const file of result.objects) {
|
|
266
|
+
* console.log(`File: ${file.name}, Size: ${file.size}, Type: ${file.contentType}`);
|
|
267
|
+
* }
|
|
268
|
+
*
|
|
269
|
+
* // Process subdirectories
|
|
270
|
+
* for (const dir of result.prefixes) {
|
|
271
|
+
* console.log(`Directory: ${dir}`);
|
|
272
|
+
* }
|
|
273
|
+
* ```
|
|
274
|
+
*/
|
|
110
275
|
async ListObjects(prefix, delimiter = '/') {
|
|
111
276
|
try {
|
|
112
277
|
const options = {
|
|
@@ -150,6 +315,28 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
150
315
|
return { objects: [], prefixes: [] };
|
|
151
316
|
}
|
|
152
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* Creates a directory (virtual) in Google Cloud Storage.
|
|
320
|
+
*
|
|
321
|
+
* Since GCS doesn't have a native directory concept, this method creates
|
|
322
|
+
* a zero-byte object with a trailing slash to simulate a directory.
|
|
323
|
+
* The object has a special content type to indicate it's a directory.
|
|
324
|
+
*
|
|
325
|
+
* @param directoryPath - The path of the directory to create
|
|
326
|
+
* @returns A Promise resolving to a boolean indicating success
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* // Create a new directory structure
|
|
331
|
+
* const created = await gcsStorage.CreateDirectory('documents/reports/annual/');
|
|
332
|
+
*
|
|
333
|
+
* if (created) {
|
|
334
|
+
* console.log('Directory created successfully');
|
|
335
|
+
* } else {
|
|
336
|
+
* console.log('Failed to create directory');
|
|
337
|
+
* }
|
|
338
|
+
* ```
|
|
339
|
+
*/
|
|
153
340
|
async CreateDirectory(directoryPath) {
|
|
154
341
|
try {
|
|
155
342
|
directoryPath = this._normalizeDirectoryPath(directoryPath);
|
|
@@ -168,6 +355,26 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
168
355
|
return false;
|
|
169
356
|
}
|
|
170
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Deletes a directory (virtual) and optionally its contents from Google Cloud Storage.
|
|
360
|
+
*
|
|
361
|
+
* For non-recursive deletion, this method simply deletes the directory
|
|
362
|
+
* placeholder object. For recursive deletion, it lists all objects with
|
|
363
|
+
* the directory path as prefix and deletes them in parallel.
|
|
364
|
+
*
|
|
365
|
+
* @param directoryPath - The path of the directory to delete
|
|
366
|
+
* @param recursive - If true, deletes all contents recursively (default: false)
|
|
367
|
+
* @returns A Promise resolving to a boolean indicating success
|
|
368
|
+
*
|
|
369
|
+
* @example
|
|
370
|
+
* ```typescript
|
|
371
|
+
* // Delete an empty directory
|
|
372
|
+
* const deleted = await gcsStorage.DeleteDirectory('documents/temp/');
|
|
373
|
+
*
|
|
374
|
+
* // Delete a directory and all its contents
|
|
375
|
+
* const recursivelyDeleted = await gcsStorage.DeleteDirectory('documents/old_projects/', true);
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
171
378
|
async DeleteDirectory(directoryPath, recursive = false) {
|
|
172
379
|
try {
|
|
173
380
|
directoryPath = this._normalizeDirectoryPath(directoryPath);
|
|
@@ -191,6 +398,29 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
191
398
|
return false;
|
|
192
399
|
}
|
|
193
400
|
}
|
|
401
|
+
/**
|
|
402
|
+
* Retrieves metadata for a specific object in Google Cloud Storage.
|
|
403
|
+
*
|
|
404
|
+
* This method fetches the properties of an object without downloading its content,
|
|
405
|
+
* which is more efficient for checking file attributes like size, content type,
|
|
406
|
+
* and last modified date.
|
|
407
|
+
*
|
|
408
|
+
* @param objectName - The name of the object to get metadata for
|
|
409
|
+
* @returns A Promise resolving to a StorageObjectMetadata object
|
|
410
|
+
* @throws Error if the object doesn't exist or cannot be accessed
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```typescript
|
|
414
|
+
* try {
|
|
415
|
+
* const metadata = await gcsStorage.GetObjectMetadata('documents/report.pdf');
|
|
416
|
+
* console.log(`File: ${metadata.name}`);
|
|
417
|
+
* console.log(`Size: ${metadata.size} bytes`);
|
|
418
|
+
* console.log(`Last modified: ${metadata.lastModified}`);
|
|
419
|
+
* } catch (error) {
|
|
420
|
+
* console.error('File does not exist or cannot be accessed');
|
|
421
|
+
* }
|
|
422
|
+
* ```
|
|
423
|
+
*/
|
|
194
424
|
async GetObjectMetadata(objectName) {
|
|
195
425
|
try {
|
|
196
426
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
@@ -217,6 +447,28 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
217
447
|
throw new Error(`Object not found: ${objectName}`);
|
|
218
448
|
}
|
|
219
449
|
}
|
|
450
|
+
/**
|
|
451
|
+
* Downloads an object's content from Google Cloud Storage.
|
|
452
|
+
*
|
|
453
|
+
* This method retrieves the full content of an object and returns it
|
|
454
|
+
* as a Buffer for processing in memory.
|
|
455
|
+
*
|
|
456
|
+
* @param objectName - The name of the object to download
|
|
457
|
+
* @returns A Promise resolving to a Buffer containing the object's data
|
|
458
|
+
* @throws Error if the object doesn't exist or cannot be downloaded
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* ```typescript
|
|
462
|
+
* try {
|
|
463
|
+
* const content = await gcsStorage.GetObject('documents/config.json');
|
|
464
|
+
* // Parse the JSON content
|
|
465
|
+
* const config = JSON.parse(content.toString('utf8'));
|
|
466
|
+
* console.log('Configuration loaded:', config);
|
|
467
|
+
* } catch (error) {
|
|
468
|
+
* console.error('Failed to download file:', error.message);
|
|
469
|
+
* }
|
|
470
|
+
* ```
|
|
471
|
+
*/
|
|
220
472
|
async GetObject(objectName) {
|
|
221
473
|
try {
|
|
222
474
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
@@ -229,6 +481,36 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
229
481
|
throw new Error(`Failed to get object: ${objectName}`);
|
|
230
482
|
}
|
|
231
483
|
}
|
|
484
|
+
/**
|
|
485
|
+
* Uploads data to an object in Google Cloud Storage.
|
|
486
|
+
*
|
|
487
|
+
* This method directly uploads a Buffer of data to an object with the specified name.
|
|
488
|
+
* It's useful for server-side operations where you already have the data in memory.
|
|
489
|
+
*
|
|
490
|
+
* @param objectName - The name to assign to the uploaded object
|
|
491
|
+
* @param data - The Buffer containing the data to upload
|
|
492
|
+
* @param contentType - Optional MIME type for the object (inferred from name if not provided)
|
|
493
|
+
* @param metadata - Optional key-value pairs of custom metadata to associate with the object
|
|
494
|
+
* @returns A Promise resolving to a boolean indicating success
|
|
495
|
+
*
|
|
496
|
+
* @example
|
|
497
|
+
* ```typescript
|
|
498
|
+
* // Upload a text file
|
|
499
|
+
* const content = Buffer.from('Hello, World!', 'utf8');
|
|
500
|
+
* const uploaded = await gcsStorage.PutObject(
|
|
501
|
+
* 'documents/hello.txt',
|
|
502
|
+
* content,
|
|
503
|
+
* 'text/plain',
|
|
504
|
+
* { author: 'John Doe', department: 'Engineering' }
|
|
505
|
+
* );
|
|
506
|
+
*
|
|
507
|
+
* if (uploaded) {
|
|
508
|
+
* console.log('File uploaded successfully');
|
|
509
|
+
* } else {
|
|
510
|
+
* console.log('Failed to upload file');
|
|
511
|
+
* }
|
|
512
|
+
* ```
|
|
513
|
+
*/
|
|
232
514
|
async PutObject(objectName, data, contentType, metadata) {
|
|
233
515
|
try {
|
|
234
516
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
@@ -248,6 +530,31 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
248
530
|
return false;
|
|
249
531
|
}
|
|
250
532
|
}
|
|
533
|
+
/**
|
|
534
|
+
* Copies an object within Google Cloud Storage.
|
|
535
|
+
*
|
|
536
|
+
* This method creates a copy of an object at a new location without removing the original.
|
|
537
|
+
* It uses the GCS copy API, which allows for efficient copying within the same bucket.
|
|
538
|
+
*
|
|
539
|
+
* @param sourceObjectName - The name of the object to copy
|
|
540
|
+
* @param destinationObjectName - The name to assign to the copied object
|
|
541
|
+
* @returns A Promise resolving to a boolean indicating success
|
|
542
|
+
*
|
|
543
|
+
* @example
|
|
544
|
+
* ```typescript
|
|
545
|
+
* // Create a backup copy of an important file
|
|
546
|
+
* const copied = await gcsStorage.CopyObject(
|
|
547
|
+
* 'documents/contract.pdf',
|
|
548
|
+
* 'backups/contract_2024-05-16.pdf'
|
|
549
|
+
* );
|
|
550
|
+
*
|
|
551
|
+
* if (copied) {
|
|
552
|
+
* console.log('File copied successfully');
|
|
553
|
+
* } else {
|
|
554
|
+
* console.log('Failed to copy file');
|
|
555
|
+
* }
|
|
556
|
+
* ```
|
|
557
|
+
*/
|
|
251
558
|
async CopyObject(sourceObjectName, destinationObjectName) {
|
|
252
559
|
try {
|
|
253
560
|
const sourceFile = this._client.bucket(this._bucket).file(sourceObjectName);
|
|
@@ -265,6 +572,29 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
265
572
|
return false;
|
|
266
573
|
}
|
|
267
574
|
}
|
|
575
|
+
/**
|
|
576
|
+
* Checks if an object exists in Google Cloud Storage.
|
|
577
|
+
*
|
|
578
|
+
* This method verifies the existence of an object without downloading
|
|
579
|
+
* its content. This is efficient for validation purposes.
|
|
580
|
+
*
|
|
581
|
+
* @param objectName - The name of the object to check
|
|
582
|
+
* @returns A Promise resolving to a boolean indicating if the object exists
|
|
583
|
+
*
|
|
584
|
+
* @example
|
|
585
|
+
* ```typescript
|
|
586
|
+
* // Check if a file exists before attempting to use it
|
|
587
|
+
* const exists = await gcsStorage.ObjectExists('documents/report.pdf');
|
|
588
|
+
*
|
|
589
|
+
* if (exists) {
|
|
590
|
+
* console.log('File exists, proceeding with download');
|
|
591
|
+
* const content = await gcsStorage.GetObject('documents/report.pdf');
|
|
592
|
+
* // Process the content...
|
|
593
|
+
* } else {
|
|
594
|
+
* console.log('File does not exist');
|
|
595
|
+
* }
|
|
596
|
+
* ```
|
|
597
|
+
*/
|
|
268
598
|
async ObjectExists(objectName) {
|
|
269
599
|
try {
|
|
270
600
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
@@ -277,6 +607,30 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
277
607
|
return false;
|
|
278
608
|
}
|
|
279
609
|
}
|
|
610
|
+
/**
|
|
611
|
+
* Checks if a directory (virtual) exists in Google Cloud Storage.
|
|
612
|
+
*
|
|
613
|
+
* Since GCS doesn't have a native directory concept, this method checks for either:
|
|
614
|
+
* 1. The existence of a directory placeholder object (zero-byte object with trailing slash)
|
|
615
|
+
* 2. The existence of any objects with the directory path as a prefix
|
|
616
|
+
*
|
|
617
|
+
* @param directoryPath - The path of the directory to check
|
|
618
|
+
* @returns A Promise resolving to a boolean indicating if the directory exists
|
|
619
|
+
*
|
|
620
|
+
* @example
|
|
621
|
+
* ```typescript
|
|
622
|
+
* // Check if a directory exists before trying to save files to it
|
|
623
|
+
* const exists = await gcsStorage.DirectoryExists('documents/reports/');
|
|
624
|
+
*
|
|
625
|
+
* if (!exists) {
|
|
626
|
+
* console.log('Directory does not exist, creating it first');
|
|
627
|
+
* await gcsStorage.CreateDirectory('documents/reports/');
|
|
628
|
+
* }
|
|
629
|
+
*
|
|
630
|
+
* // Now safe to use the directory
|
|
631
|
+
* await gcsStorage.PutObject('documents/reports/new-report.pdf', fileData);
|
|
632
|
+
* ```
|
|
633
|
+
*/
|
|
280
634
|
async DirectoryExists(directoryPath) {
|
|
281
635
|
try {
|
|
282
636
|
directoryPath = this._normalizeDirectoryPath(directoryPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleFileStorage.js","sourceRoot":"","sources":["../../src/drivers/GoogleFileStorage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GoogleFileStorage.js","sourceRoot":"","sources":["../../src/drivers/GoogleFileStorage.ts"],"names":[],"mappings":"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"}
|