Initial
This commit is contained in:
1
resources/app/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/index.js
generated
vendored
Normal file
1
resources/app/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/index.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./s3";
|
||||
37
resources/app/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js
generated
vendored
Normal file
37
resources/app/node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
export const resolveParamsForS3 = async (endpointParams) => {
|
||||
const bucket = endpointParams?.Bucket || "";
|
||||
if (typeof endpointParams.Bucket === "string") {
|
||||
endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?"));
|
||||
}
|
||||
if (isArnBucketName(bucket)) {
|
||||
if (endpointParams.ForcePathStyle === true) {
|
||||
throw new Error("Path-style addressing cannot be used with ARN buckets");
|
||||
}
|
||||
}
|
||||
else if (!isDnsCompatibleBucketName(bucket) ||
|
||||
(bucket.indexOf(".") !== -1 && !String(endpointParams.Endpoint).startsWith("http:")) ||
|
||||
bucket.toLowerCase() !== bucket ||
|
||||
bucket.length < 3) {
|
||||
endpointParams.ForcePathStyle = true;
|
||||
}
|
||||
if (endpointParams.DisableMultiRegionAccessPoints) {
|
||||
endpointParams.disableMultiRegionAccessPoints = true;
|
||||
endpointParams.DisableMRAP = true;
|
||||
}
|
||||
return endpointParams;
|
||||
};
|
||||
const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
|
||||
const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
|
||||
const DOTS_PATTERN = /\.\./;
|
||||
export const DOT_PATTERN = /\./;
|
||||
export const S3_HOSTNAME_PATTERN = /^(.+\.)?s3(-fips)?(\.dualstack)?[.-]([a-z0-9-]+)\./;
|
||||
export const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);
|
||||
export const isArnBucketName = (bucketName) => {
|
||||
const [arn, partition, service, , , bucket] = bucketName.split(":");
|
||||
const isArn = arn === "arn" && bucketName.split(":").length >= 6;
|
||||
const isValidArn = Boolean(isArn && partition && service && bucket);
|
||||
if (isArn && !isValidArn) {
|
||||
throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);
|
||||
}
|
||||
return isValidArn;
|
||||
};
|
||||
Reference in New Issue
Block a user