UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

1 lines 1.89 kB
{"version":3,"file":"validateObjectUrl.mjs","sources":["../../../../../src/providers/s3/utils/validateObjectUrl.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { extendedEncodeURIComponent } from '@aws-amplify/core/internals/aws-client-utils';\nimport { IntegrityError } from '../../../errors/IntegrityError';\nexport function validateObjectUrl({ bucketName, key, objectURL, }) {\n if (!bucketName || !key || !objectURL) {\n throw new IntegrityError();\n }\n const bucketWithDots = bucketName.includes('.');\n const encodedBucketName = extendedEncodeURIComponent(bucketName);\n const encodedKey = key.split('/').map(extendedEncodeURIComponent).join('/');\n const isPathStyleUrl = objectURL.pathname === `/${encodedBucketName}/${encodedKey}`;\n const isSubdomainUrl = objectURL.hostname.startsWith(`${encodedBucketName}.`) &&\n objectURL.pathname === `/${encodedKey}`;\n if (!(isPathStyleUrl || (!bucketWithDots && isSubdomainUrl))) {\n throw new IntegrityError();\n }\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGO,SAAS,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE;AACnE,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;AAC3C,QAAQ,MAAM,IAAI,cAAc,EAAE;AAClC;AACA,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;AACnD,IAAI,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,UAAU,CAAC;AACpE,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/E,IAAI,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACvF,IAAI,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACjF,QAAQ,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC/C,IAAI,IAAI,EAAE,cAAc,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,EAAE;AAClE,QAAQ,MAAM,IAAI,cAAc,EAAE;AAClC;AACA;;;;"}