From 278c5bb3450fb4b7eca5b5a71436e4099660378d Mon Sep 17 00:00:00 2001 From: Tom Longhurst <30480171+thomhurst@users.noreply.github.com> Date: Thu, 1 Jan 2026 16:53:22 +0000 Subject: [PATCH] feat: Add CancellationToken support to AWS S3 methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add CancellationToken parameter (with default value) to all S3 bucket operation methods, allowing pipeline cancellation to propagate to AWS SDK calls. Also adds ConfigureAwait(false) for consistency. Affected methods: - Bucket, BucketEncryption, BucketLogging, BucketPolicy - BucketWebsite, BucketNotification, BucketReplication - BucketTagging, BucketVersioning, BucketAccelerateConfiguration - BucketAnalyticsConfiguration, BucketInventoryConfiguration - BucketMetricsConfiguration, BucketOwnershipControls - BucketRequestPayment, BucketIntelligentTieringConfiguration Fixes #1544 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/ModularPipelines.AmazonWebServices/S3.cs | 66 ++++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/ModularPipelines.AmazonWebServices/S3.cs b/src/ModularPipelines.AmazonWebServices/S3.cs index a9791cf803..aab8b5fd01 100644 --- a/src/ModularPipelines.AmazonWebServices/S3.cs +++ b/src/ModularPipelines.AmazonWebServices/S3.cs @@ -14,83 +14,83 @@ public S3(AmazonS3Client client) Client = client; } - public async Task Bucket(PutBucketRequest request) + public async Task Bucket(PutBucketRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketAsync(request); + return await Client.PutBucketAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketEncryption(PutBucketEncryptionRequest request) + public async Task BucketEncryption(PutBucketEncryptionRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketEncryptionAsync(request); + return await Client.PutBucketEncryptionAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketLogging(PutBucketLoggingRequest request) + public async Task BucketLogging(PutBucketLoggingRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketLoggingAsync(request); + return await Client.PutBucketLoggingAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketPolicy(PutBucketPolicyRequest request) + public async Task BucketPolicy(PutBucketPolicyRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketPolicyAsync(request); + return await Client.PutBucketPolicyAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketWebsite(PutBucketWebsiteRequest request) + public async Task BucketWebsite(PutBucketWebsiteRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketWebsiteAsync(request); + return await Client.PutBucketWebsiteAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketNotification(PutBucketNotificationRequest request) + public async Task BucketNotification(PutBucketNotificationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketNotificationAsync(request); + return await Client.PutBucketNotificationAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketReplication(PutBucketReplicationRequest request) + public async Task BucketReplication(PutBucketReplicationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketReplicationAsync(request); + return await Client.PutBucketReplicationAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketTagging(PutBucketTaggingRequest request) + public async Task BucketTagging(PutBucketTaggingRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketTaggingAsync(request); + return await Client.PutBucketTaggingAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketVersioning(PutBucketVersioningRequest request) + public async Task BucketVersioning(PutBucketVersioningRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketVersioningAsync(request); + return await Client.PutBucketVersioningAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketAccelerateConfiguration(PutBucketAccelerateConfigurationRequest request) + public async Task BucketAccelerateConfiguration(PutBucketAccelerateConfigurationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketAccelerateConfigurationAsync(request); + return await Client.PutBucketAccelerateConfigurationAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketAnalyticsConfiguration(PutBucketAnalyticsConfigurationRequest request) + public async Task BucketAnalyticsConfiguration(PutBucketAnalyticsConfigurationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketAnalyticsConfigurationAsync(request); + return await Client.PutBucketAnalyticsConfigurationAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketInventoryConfiguration(PutBucketInventoryConfigurationRequest request) + public async Task BucketInventoryConfiguration(PutBucketInventoryConfigurationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketInventoryConfigurationAsync(request); + return await Client.PutBucketInventoryConfigurationAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketMetricsConfiguration(PutBucketMetricsConfigurationRequest request) + public async Task BucketMetricsConfiguration(PutBucketMetricsConfigurationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketMetricsConfigurationAsync(request); + return await Client.PutBucketMetricsConfigurationAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketOwnershipControls(PutBucketOwnershipControlsRequest request) + public async Task BucketOwnershipControls(PutBucketOwnershipControlsRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketOwnershipControlsAsync(request); + return await Client.PutBucketOwnershipControlsAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketRequestPayment(PutBucketRequestPaymentRequest request) + public async Task BucketRequestPayment(PutBucketRequestPaymentRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketRequestPaymentAsync(request); + return await Client.PutBucketRequestPaymentAsync(request, cancellationToken).ConfigureAwait(false); } - public async Task BucketIntelligentTieringConfiguration(PutBucketIntelligentTieringConfigurationRequest request) + public async Task BucketIntelligentTieringConfiguration(PutBucketIntelligentTieringConfigurationRequest request, CancellationToken cancellationToken = default) { - return await Client.PutBucketIntelligentTieringConfigurationAsync(request); + return await Client.PutBucketIntelligentTieringConfigurationAsync(request, cancellationToken).ConfigureAwait(false); } -} \ No newline at end of file +}