From 1be86f8db89d6f0c57b48651b294a6927fd32fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Fr=C3=B6hle?= Date: Tue, 1 Apr 2025 08:26:04 +0000 Subject: [PATCH 1/3] Allow modification of ChecksumCalculation --- packages/publisher/s3/src/Config.ts | 27 ++++++++++++++++++++++++ packages/publisher/s3/src/PublisherS3.ts | 2 ++ 2 files changed, 29 insertions(+) diff --git a/packages/publisher/s3/src/Config.ts b/packages/publisher/s3/src/Config.ts index 52abd50a30..3f68672d98 100644 --- a/packages/publisher/s3/src/Config.ts +++ b/packages/publisher/s3/src/Config.ts @@ -62,6 +62,33 @@ export interface PublisherS3Config { * Default: false */ s3ForcePathStyle?: boolean; + /** + * Controls whether checksums are calculated for requests sent to S3. + * + * Possible values: + * - "WHEN_SUPPORTED" - Calculate checksums for all requests + * - "WHEN_REQUIRED" - Only calculate checksums when required by the service + * + * See: + * https://github.com/aws/aws-sdk-js-v3/blob/main/packages/middleware-flexible-checksums/src/constants.ts + * + * Default: "WHEN_SUPPORTED" + */ + requestChecksumCalculation?: string + + /** + * Controls whether checksums in responses from S3 are validated. + * + * Possible values: + * - "WHEN_SUPPORTED" - Validate checksums for all responses + * - "WHEN_REQUIRED" - Only validate checksums when provided by the service + * + * See: + * https://github.com/aws/aws-sdk-js-v3/blob/main/packages/middleware-flexible-checksums/src/constants.ts + * + * Default: "WHEN_SUPPORTED" + */ + responseChecksumValidation?: string /** * Custom function to provide the key to upload a given file to */ diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index d5994538ad..77caab10e3 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -48,6 +48,8 @@ export default class PublisherS3 extends PublisherStatic { region: this.config.region, endpoint: this.config.endpoint, forcePathStyle: !!this.config.s3ForcePathStyle, + requestChecksumCalculation: this.config.requestChecksumCalculation || "WHEN_SUPPORTED", + responseChecksumValidation: this.config.responseChecksumValidation || "WHEN_SUPPORTED", }); d('creating s3 client with options:', this.config); From 3fa7116bd1dc7ec9bc5747abb00fb91320201303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Fr=C3=B6hle?= Date: Tue, 1 Apr 2025 08:40:44 +0000 Subject: [PATCH 2/3] fix as const --- packages/publisher/s3/src/PublisherS3.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index 77caab10e3..c40f44ea55 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -48,8 +48,8 @@ export default class PublisherS3 extends PublisherStatic { region: this.config.region, endpoint: this.config.endpoint, forcePathStyle: !!this.config.s3ForcePathStyle, - requestChecksumCalculation: this.config.requestChecksumCalculation || "WHEN_SUPPORTED", - responseChecksumValidation: this.config.responseChecksumValidation || "WHEN_SUPPORTED", + requestChecksumCalculation: this.config.requestChecksumCalculation || "WHEN_SUPPORTED" as const, + responseChecksumValidation: this.config.responseChecksumValidation || "WHEN_SUPPORTED" as const, }); d('creating s3 client with options:', this.config); From 1db58d8d278fb51000fbb218643d91fe09cd294b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Fr=C3=B6hle?= Date: Tue, 1 Apr 2025 09:04:06 +0000 Subject: [PATCH 3/3] correct types --- packages/publisher/s3/src/Config.ts | 23 ++++++++++++++--------- packages/publisher/s3/src/PublisherS3.ts | 4 ++-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/packages/publisher/s3/src/Config.ts b/packages/publisher/s3/src/Config.ts index 3f68672d98..ef3eae92c2 100644 --- a/packages/publisher/s3/src/Config.ts +++ b/packages/publisher/s3/src/Config.ts @@ -64,31 +64,36 @@ export interface PublisherS3Config { s3ForcePathStyle?: boolean; /** * Controls whether checksums are calculated for requests sent to S3. - * + * * Possible values: * - "WHEN_SUPPORTED" - Calculate checksums for all requests * - "WHEN_REQUIRED" - Only calculate checksums when required by the service - * + * * See: * https://github.com/aws/aws-sdk-js-v3/blob/main/packages/middleware-flexible-checksums/src/constants.ts - * + * * Default: "WHEN_SUPPORTED" */ - requestChecksumCalculation?: string - + requestChecksumCalculation?: + | import('@aws-sdk/middleware-flexible-checksums').RequestChecksumCalculation + | import('@aws-sdk/types').Provider + | undefined; /** * Controls whether checksums in responses from S3 are validated. - * + * * Possible values: * - "WHEN_SUPPORTED" - Validate checksums for all responses * - "WHEN_REQUIRED" - Only validate checksums when provided by the service - * + * * See: * https://github.com/aws/aws-sdk-js-v3/blob/main/packages/middleware-flexible-checksums/src/constants.ts - * + * * Default: "WHEN_SUPPORTED" */ - responseChecksumValidation?: string + responseChecksumValidation?: + | import('@aws-sdk/middleware-flexible-checksums').ResponseChecksumValidation + | import('@aws-sdk/types').Provider + | undefined; /** * Custom function to provide the key to upload a given file to */ diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index c40f44ea55..4d8849d7aa 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -48,8 +48,8 @@ export default class PublisherS3 extends PublisherStatic { region: this.config.region, endpoint: this.config.endpoint, forcePathStyle: !!this.config.s3ForcePathStyle, - requestChecksumCalculation: this.config.requestChecksumCalculation || "WHEN_SUPPORTED" as const, - responseChecksumValidation: this.config.responseChecksumValidation || "WHEN_SUPPORTED" as const, + requestChecksumCalculation: this.config.requestChecksumCalculation || ('WHEN_SUPPORTED' as const), + responseChecksumValidation: this.config.responseChecksumValidation || ('WHEN_SUPPORTED' as const), }); d('creating s3 client with options:', this.config);