@quatrain/storage-s3 1.2.6 → 1.2.7
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.
|
@@ -118,5 +118,5 @@ export declare class S3StorageAdapter extends AbstractStorageAdapter {
|
|
|
118
118
|
* @param bucket - Target bucket name.
|
|
119
119
|
* @returns A promise resolving to bucket statistics.
|
|
120
120
|
*/
|
|
121
|
-
getBucketStats(bucket?: string): Promise<BucketStatsType>;
|
|
121
|
+
getBucketStats(bucket?: string, prefix?: string): Promise<BucketStatsType>;
|
|
122
122
|
}
|
package/dist/S3StorageAdapter.js
CHANGED
|
@@ -301,7 +301,7 @@ class S3StorageAdapter extends storage_1.AbstractStorageAdapter {
|
|
|
301
301
|
* @param bucket - Target bucket name.
|
|
302
302
|
* @returns A promise resolving to bucket statistics.
|
|
303
303
|
*/
|
|
304
|
-
getBucketStats(bucket) {
|
|
304
|
+
getBucketStats(bucket, prefix) {
|
|
305
305
|
return __awaiter(this, void 0, void 0, function* () {
|
|
306
306
|
var _a;
|
|
307
307
|
const targetBucket = bucket || this._params.config.bucket;
|
|
@@ -310,11 +310,13 @@ class S3StorageAdapter extends storage_1.AbstractStorageAdapter {
|
|
|
310
310
|
let isTruncated = true;
|
|
311
311
|
let continuationToken = undefined;
|
|
312
312
|
const folders = {};
|
|
313
|
-
storage_1.Storage.info(`Fetching bucket stats for ${targetBucket}`);
|
|
313
|
+
storage_1.Storage.info(`Fetching bucket stats for ${targetBucket} (prefix: ${prefix || 'none'})`);
|
|
314
|
+
const s3Prefix = prefix ? (prefix.endsWith('/') ? prefix : prefix + '/') : undefined;
|
|
314
315
|
while (isTruncated) {
|
|
315
316
|
const input = {
|
|
316
317
|
Bucket: targetBucket,
|
|
317
318
|
ContinuationToken: continuationToken,
|
|
319
|
+
Prefix: s3Prefix,
|
|
318
320
|
};
|
|
319
321
|
const command = new client_s3_1.ListObjectsV2Command(input);
|
|
320
322
|
const res = yield this._client.send(command);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quatrain/storage-s3",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
4
4
|
"description": "Storage adapter for S3 compatible services",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@aws-sdk/client-s3": "^3.337.0",
|
|
35
35
|
"@aws-sdk/s3-request-presigner": "^3.342.0",
|
|
36
|
-
"@quatrain/storage": "^1.2.
|
|
36
|
+
"@quatrain/storage": "^1.2.8",
|
|
37
37
|
"fs-extra": "^11.2.0"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
package/src/S3StorageAdapter.ts
CHANGED
|
@@ -343,7 +343,7 @@ export class S3StorageAdapter extends AbstractStorageAdapter {
|
|
|
343
343
|
* @param bucket - Target bucket name.
|
|
344
344
|
* @returns A promise resolving to bucket statistics.
|
|
345
345
|
*/
|
|
346
|
-
async getBucketStats(bucket?: string): Promise<BucketStatsType> {
|
|
346
|
+
async getBucketStats(bucket?: string, prefix?: string): Promise<BucketStatsType> {
|
|
347
347
|
const targetBucket = bucket || this._params.config.bucket
|
|
348
348
|
let totalObjects = 0
|
|
349
349
|
let totalSize = 0
|
|
@@ -351,12 +351,15 @@ export class S3StorageAdapter extends AbstractStorageAdapter {
|
|
|
351
351
|
let continuationToken: string | undefined = undefined
|
|
352
352
|
const folders: Record<string, any> = {}
|
|
353
353
|
|
|
354
|
-
Storage.info(`Fetching bucket stats for ${targetBucket}`)
|
|
354
|
+
Storage.info(`Fetching bucket stats for ${targetBucket} (prefix: ${prefix || 'none'})`)
|
|
355
|
+
|
|
356
|
+
const s3Prefix = prefix ? (prefix.endsWith('/') ? prefix : prefix + '/') : undefined
|
|
355
357
|
|
|
356
358
|
while (isTruncated) {
|
|
357
359
|
const input: ListObjectsV2CommandInput = {
|
|
358
360
|
Bucket: targetBucket,
|
|
359
361
|
ContinuationToken: continuationToken,
|
|
362
|
+
Prefix: s3Prefix,
|
|
360
363
|
}
|
|
361
364
|
const command = new ListObjectsV2Command(input)
|
|
362
365
|
const res: ListObjectsV2CommandOutput = await this._client.send(command)
|