UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

1 lines 5.4 kB
{"version":3,"file":"deleteFolderContents.mjs","sources":["../../../../../src/providers/s3/utils/deleteFolderContents.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageAction } from '@aws-amplify/core/internals/utils';\nimport { CanceledError } from '../../../errors/CanceledError';\nimport { deleteObjects, listObjectsV2 } from './client/s3data';\nimport { getStorageUserAgentValue } from './userAgent';\nconst MAX_KEYS_PER_BATCH = 1000;\n/**\n * Deletes all contents of a folder in S3 using batch operations\n *\n * @param params - Configuration object for the delete operation\n * @returns Promise that resolves to the removal result\n */\nexport const deleteFolderContents = async (params) => {\n const { s3Config, bucket, folderKey, expectedBucketOwner, onProgress, abortSignal, } = params;\n try {\n const prefix = folderKey.endsWith('/') ? folderKey : `${folderKey}/`;\n const progressCallback = onProgress ??\n (() => {\n // no-op\n });\n let continuationToken;\n do {\n if (abortSignal?.aborted) {\n throw new CanceledError({ message: 'Operation was canceled' });\n }\n const listResult = await listObjectsV2({\n ...s3Config,\n userAgentValue: getStorageUserAgentValue(StorageAction.Remove),\n abortSignal,\n }, {\n Bucket: bucket,\n Prefix: prefix,\n MaxKeys: MAX_KEYS_PER_BATCH,\n ContinuationToken: continuationToken,\n ExpectedBucketOwner: expectedBucketOwner,\n });\n if (!listResult.Contents || listResult.Contents.length === 0) {\n break;\n }\n if (abortSignal?.aborted) {\n throw new CanceledError({ message: 'Operation was canceled' });\n }\n const batch = listResult.Contents.map(obj => ({ Key: obj.Key }));\n const deleteResult = await deleteObjects({\n ...s3Config,\n userAgentValue: getStorageUserAgentValue(StorageAction.Remove),\n abortSignal,\n }, {\n Bucket: bucket,\n Delete: {\n Objects: batch,\n Quiet: false,\n },\n ExpectedBucketOwner: expectedBucketOwner,\n });\n const deleted = deleteResult.Deleted?.map(obj => ({ path: obj.Key })) || [];\n const failed = deleteResult.Errors?.map(err => ({\n path: err.Key,\n code: err.Code,\n message: err.Message,\n })) || [];\n progressCallback({ deleted, failed });\n continuationToken = listResult.NextContinuationToken;\n } while (continuationToken);\n return { path: folderKey };\n }\n catch (error) {\n if (abortSignal?.aborted) {\n throw new CanceledError({ message: 'Operation was canceled' });\n }\n throw error;\n }\n};\n"],"names":[],"mappings":"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"}