@aws-sdk/middleware-sdk-s3
Advanced tools
Comparing version 3.523.0 to 3.525.0
@@ -436,3 +436,4 @@ var __defProp = Object.defineProperty; | ||
) | ||
) | ||
), | ||
bucketEndpoint: input.bucketEndpoint ?? false | ||
}; | ||
@@ -486,3 +487,40 @@ }, "resolveS3Config"); | ||
var import_util_arn_parser = require("@aws-sdk/util-arn-parser"); | ||
function validateBucketNameMiddleware() { | ||
// src/bucket-endpoint-middleware.ts | ||
function bucketEndpointMiddleware(options) { | ||
return (next, context) => async (args) => { | ||
var _a, _b, _c, _d; | ||
if (options.bucketEndpoint) { | ||
const endpoint = context.endpointV2; | ||
if (endpoint) { | ||
const bucket = args.input.Bucket; | ||
if (typeof bucket === "string") { | ||
try { | ||
const bucketEndpointUrl = new URL(bucket); | ||
endpoint.url = bucketEndpointUrl; | ||
} catch (e) { | ||
const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`; | ||
if (((_b = (_a = context.logger) == null ? void 0 : _a.constructor) == null ? void 0 : _b.name) === "NoOpLogger") { | ||
console.warn(warning); | ||
} else { | ||
(_d = (_c = context.logger) == null ? void 0 : _c.warn) == null ? void 0 : _d.call(_c, warning); | ||
} | ||
throw e; | ||
} | ||
} | ||
} | ||
} | ||
return next(args); | ||
}; | ||
} | ||
__name(bucketEndpointMiddleware, "bucketEndpointMiddleware"); | ||
var bucketEndpointMiddlewareOptions = { | ||
name: "bucketEndpointMiddleware", | ||
override: true, | ||
relation: "after", | ||
toMiddleware: "endpointV2Middleware" | ||
}; | ||
// src/validate-bucket-name.ts | ||
function validateBucketNameMiddleware({ bucketEndpoint }) { | ||
return (next) => async (args) => { | ||
@@ -492,3 +530,3 @@ const { | ||
} = args; | ||
if (typeof Bucket === "string" && !(0, import_util_arn_parser.validate)(Bucket) && Bucket.indexOf("/") >= 0) { | ||
if (!bucketEndpoint && typeof Bucket === "string" && !(0, import_util_arn_parser.validate)(Bucket) && Bucket.indexOf("/") >= 0) { | ||
const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`); | ||
@@ -508,5 +546,6 @@ err.name = "InvalidBucketName"; | ||
}; | ||
var getValidateBucketNamePlugin = /* @__PURE__ */ __name((unused) => ({ | ||
var getValidateBucketNamePlugin = /* @__PURE__ */ __name((options) => ({ | ||
applyToStack: (clientStack) => { | ||
clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions); | ||
clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions); | ||
clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions); | ||
} | ||
@@ -513,0 +552,0 @@ }), "getValidateBucketNamePlugin"); |
@@ -15,3 +15,4 @@ import { S3ExpressIdentityProviderImpl } from "./s3-express"; | ||
}))), | ||
bucketEndpoint: input.bucketEndpoint ?? false, | ||
}; | ||
}; |
import { validate as validateArn } from "@aws-sdk/util-arn-parser"; | ||
export function validateBucketNameMiddleware() { | ||
import { bucketEndpointMiddleware, bucketEndpointMiddlewareOptions } from "./bucket-endpoint-middleware"; | ||
export function validateBucketNameMiddleware({ bucketEndpoint }) { | ||
return (next) => async (args) => { | ||
const { input: { Bucket }, } = args; | ||
if (typeof Bucket === "string" && !validateArn(Bucket) && Bucket.indexOf("/") >= 0) { | ||
if (!bucketEndpoint && typeof Bucket === "string" && !validateArn(Bucket) && Bucket.indexOf("/") >= 0) { | ||
const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`); | ||
@@ -19,6 +20,7 @@ err.name = "InvalidBucketName"; | ||
}; | ||
export const getValidateBucketNamePlugin = (unused) => ({ | ||
export const getValidateBucketNamePlugin = (options) => ({ | ||
applyToStack: (clientStack) => { | ||
clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions); | ||
clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions); | ||
clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions); | ||
}, | ||
}); |
@@ -30,2 +30,6 @@ import type { Client, Command } from "@smithy/types"; | ||
s3ExpressIdentityProvider?: S3ExpressIdentityProvider; | ||
/** | ||
* Whether to use the bucket name as the endpoint for this client. | ||
*/ | ||
bucketEndpoint?: boolean; | ||
} | ||
@@ -52,2 +56,3 @@ /** | ||
s3ExpressIdentityProvider: S3ExpressIdentityProvider; | ||
bucketEndpoint: boolean; | ||
} | ||
@@ -54,0 +59,0 @@ export declare const resolveS3Config: <T>(input: T & S3InputConfig, { session, }: { |
@@ -9,2 +9,3 @@ import { Client, Command } from "@smithy/types"; | ||
s3ExpressIdentityProvider?: S3ExpressIdentityProvider; | ||
bucketEndpoint?: boolean; | ||
} | ||
@@ -21,2 +22,3 @@ type PlaceholderS3Client = Client<any, any, any> & any; | ||
s3ExpressIdentityProvider: S3ExpressIdentityProvider; | ||
bucketEndpoint: boolean; | ||
} | ||
@@ -23,0 +25,0 @@ export declare const resolveS3Config: <T>( |
@@ -6,9 +6,9 @@ import { | ||
} from "@smithy/types"; | ||
export declare function validateBucketNameMiddleware(): InitializeMiddleware< | ||
any, | ||
any | ||
>; | ||
import { S3ResolvedConfig } from "./s3Configuration"; | ||
export declare function validateBucketNameMiddleware({ | ||
bucketEndpoint, | ||
}: S3ResolvedConfig): InitializeMiddleware<any, any>; | ||
export declare const validateBucketNameMiddlewareOptions: InitializeHandlerOptions; | ||
export declare const getValidateBucketNamePlugin: ( | ||
unused: any | ||
options: S3ResolvedConfig | ||
) => Pluggable<any, any>; |
import { InitializeHandlerOptions, InitializeMiddleware, Pluggable } from "@smithy/types"; | ||
import { S3ResolvedConfig } from "./s3Configuration"; | ||
/** | ||
* @internal | ||
*/ | ||
export declare function validateBucketNameMiddleware(): InitializeMiddleware<any, any>; | ||
export declare function validateBucketNameMiddleware({ bucketEndpoint }: S3ResolvedConfig): InitializeMiddleware<any, any>; | ||
/** | ||
@@ -13,2 +14,2 @@ * @internal | ||
*/ | ||
export declare const getValidateBucketNamePlugin: (unused: any) => Pluggable<any, any>; | ||
export declare const getValidateBucketNamePlugin: (options: S3ResolvedConfig) => Pluggable<any, any>; |
{ | ||
"name": "@aws-sdk/middleware-sdk-s3", | ||
"version": "3.523.0", | ||
"version": "3.525.0", | ||
"scripts": { | ||
@@ -28,6 +28,6 @@ "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", | ||
"@aws-sdk/util-arn-parser": "3.495.0", | ||
"@smithy/node-config-provider": "^2.2.3", | ||
"@smithy/node-config-provider": "^2.2.4", | ||
"@smithy/protocol-http": "^3.2.1", | ||
"@smithy/signature-v4": "^2.1.3", | ||
"@smithy/smithy-client": "^2.4.1", | ||
"@smithy/smithy-client": "^2.4.2", | ||
"@smithy/types": "^2.10.1", | ||
@@ -34,0 +34,0 @@ "@smithy/util-config-provider": "^2.2.1", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
79892
75
1635