UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

39 lines (37 loc) 1.47 kB
'use strict'; // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 Object.defineProperty(exports, "__esModule", { value: true }); exports.isPathFolder = void 0; const utils_1 = require("@aws-amplify/core/internals/utils"); const s3data_1 = require("./client/s3data"); const userAgent_1 = require("./userAgent"); /** * Determines if a given S3 key represents a folder by checking if objects exist with that prefix. * * @param params - Configuration object for the folder check * @returns Promise that resolves to true if the key represents a folder, false otherwise */ const isPathFolder = async (params) => { const { s3Config, bucket, key, expectedBucketOwner } = params; try { const prefix = key.endsWith('/') ? key : `${key}/`; const result = await (0, s3data_1.listObjectsV2)({ ...s3Config, userAgentValue: (0, userAgent_1.getStorageUserAgentValue)(utils_1.StorageAction.Remove), }, { Bucket: bucket, Prefix: prefix, MaxKeys: 1, ExpectedBucketOwner: expectedBucketOwner, }); const isFolder = !!(result.Contents && result.Contents.length > 0) || !!(result.CommonPrefixes && result.CommonPrefixes.length > 0); return isFolder; } catch (error) { return false; } }; exports.isPathFolder = isPathFolder; //# sourceMappingURL=isPathFolder.js.map