diff --git a/Frends.AmazonS3.UploadObject/CHANGELOG.md b/Frends.AmazonS3.UploadObject/CHANGELOG.md index 3720809..5a4ff4f 100644 --- a/Frends.AmazonS3.UploadObject/CHANGELOG.md +++ b/Frends.AmazonS3.UploadObject/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## [3.3.0] - 2026-04-21 +### Fixed +- Fixed missing BucketName/Key in abort cleanup, simplified loop to a single abort call, added throw to stop swallowing exceptions and set default multipart part size to 10 MB. ## [3.2.0] - 2025-12-29 ### Changed diff --git a/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Definitions/Connection.cs b/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Definitions/Connection.cs index 1d45c42..145da10 100644 --- a/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Definitions/Connection.cs +++ b/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Definitions/Connection.cs @@ -96,7 +96,8 @@ public class Connection /// Recommended part sizes typically range from 10 MB to 100 MB for optimal performance. /// /// 10 - public long PartSize { get; set; } + [DefaultValue(10)] + public long PartSize { get; set; } = 10; /// /// Enable/disable an AWS S3 access control list. diff --git a/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject.csproj b/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject.csproj index 518906f..fdecbb2 100644 --- a/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject.csproj +++ b/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject.csproj @@ -2,7 +2,7 @@ net8.0 - 3.2.0 + 3.3.0 Frends Frends Frends diff --git a/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/UploadObject.cs b/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/UploadObject.cs index c5e2f4e..aee7c56 100644 --- a/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/UploadObject.cs +++ b/Frends.AmazonS3.UploadObject/Frends.AmazonS3.UploadObject/UploadObject.cs @@ -259,28 +259,22 @@ private static async Task UploadMultipart(FileInfo file, Connection connection, } catch (Exception) { - ListPartsRequest listPartsRequest = new() - { - UploadId = uploadRequest.UploadId - }; - - var listParts = await client.ListPartsAsync(listPartsRequest, cancellationToken); - - while (listParts.Parts.Count > 0) + try { - foreach (var part in listParts.Parts) + var abortMpuRequest = new AbortMultipartUploadRequest { - AbortMultipartUploadRequest abortMpuRequest = new() - { - BucketName = input.BucketName, - Key = path, - UploadId = uploadRequest.UploadId - }; - await client.AbortMultipartUploadAsync(abortMpuRequest, cancellationToken); - } + BucketName = input.BucketName, + Key = path, + UploadId = initResponse.UploadId + }; - listParts = await client.ListPartsAsync(listPartsRequest, cancellationToken); + await client.AbortMultipartUploadAsync(abortMpuRequest, cancellationToken); + } + catch + { + // Swallow abort errors so the original exception is rethrown below. } + throw; } }