Skip to content

Latest commit

 

History

History
226 lines (152 loc) · 13.7 KB

CHANGELOG.md

File metadata and controls

226 lines (152 loc) · 13.7 KB

## Unreleased

Other changes

v0.12.0 (January 20, 2025)

Breaking changes

  • get_object method now waits for the response headers before returning and may report errors earlier. Moreover, its return type on success has been renamed to GetObjectResponse (was GetObjectRequest). (#1171)
  • get_object method now requires a GetObjectParams parameter. Two of the existing parameters, range and if_match have been moved to GetObjectParams. (#1121)
  • increment_read_window and read_window_end_offset methods have been removed from GetObjectResponse. ClientBackpressureHandle can be used to interact with flow-control window instead, it can be retrieved from backpressure_handle method. (#1200)
  • head_object method now requires a HeadObjectParams parameter. The structure itself is not required to specify anything to achieve the existing behavior. (#1083)
  • HeadObjectResult no longer contains an ObjectInfo struct. Instead, it returns the object attributes as individual fields on the HeadObjectResult. The entity tag field has also changed and is now of type ETag rather than String. (#1058)
  • HeadObjectResult no longer provides the bucket and key used in the original request. (#1058)
  • Both ObjectInfo and ChecksumAlgorithm structs are now marked non_exhaustive, to indicate that new fields may be added in the future. ChecksumAlgorithm no longer implements Copy. (#1086)
  • put_object method now waits for the CreateMultipartUpload request to complete before returning and may report errors earlier. (#1192)

Other changes

  • Add support for custom telemetry handlers. (#1080)
  • Add support for source buckets with dots in the name in copy_object. (#1228)
  • Add support for object metadata in GET requests. (#1065)
  • HeadObjectResult now includes the server-side encryption settings used when storing the object. (#1143)
  • Add parameter to request checksum information as part of a HeadObject request. If specified, the result should contain the checksum for the object if available in the S3 response. (#1083)
  • Add parameter to request checksum information as part of a GetObject request. If specified, calling get_object_checksum on GetObjectRequest will return the checksum information. (#1123)
  • Expose checksum algorithm in ListObjectsResult's ObjectInfo struct. (#1086, #1093)
  • ChecksumAlgorithm has a new variant Unknown(String), to accomodate algorithms not recognized by the client should they be added in future. (#1086)
  • Allow to specify any of the supported checksum algorithms when uploading objects with put_object_single. (#1157)
  • Amazon S3 introduces support for AWS Dedicated Local Zones. (awslabs/aws-c-s3#465)

v0.11.0 (October 17, 2024)

Breaking changes

  • No breaking changes.

Other changes

  • Add support for copy object operation. (#1052)
  • Introduce a new API (put_object_single) to perform single PutObject requests rather than multi-part uploads. (#1046)
  • Return the new object ETag after a successful PUT request. (#1057)
  • Add support for custom headers in PUT requests. (#1059)
  • Add support for writing object metadata in PUT requests. (#1062)
  • Address a threading issue in the s2n-tls library that could result in premature cleanup and NULL pointer errors. (aws/s2n-tls#4584)
  • Inaccurate reporting of s3.client.buffer_pool.primary_allocated CRT statistic is fixed. (awslabs/aws-c-s3#453)
  • Expose s3.client.buffer_pool.forced_used metric which account for buffer allocations that could exceed memory limit in the CRT buffer pool. (#1025)
  • The 400 RequestTimeout error is now treated as retryable. (awslabs/aws-c-s3#457)

v0.10.0 (September 12, 2024)

Breaking changes

  • When using GetObject with backpressure enabled, an error will be returned when there is not enough read window instead of blocking. (#971)

Other changes

  • Allow querying initial read window size and read window end offset for backpressure GetObject. (#971)
  • Fix an issue where credential_process field would not be picked up correctly when using source_profile or --profile <AWS_PROFILE>. (awslabs/aws-c-auth#245)
  • Update CacheCredentialsProvider Refresh Time to 5 Minutes before Expiry. (awslabs/aws-c-auth#247)
  • Allow specifying a list of network interfaces to be used by an S3 client. (#943)

v0.9.0 (June 26, 2024)

  • Adds support for AWS_ENDPOINT_URL environment variable. (#895)
  • Support backpressure for GetObject request (#889)
  • Fix an issue where mountpoint-s3-client could interpret a HTTP 206 Partial success response as an error (#917)
  • Introduce a new trait ProvideErrorMetadata to provide additional information for error reporting (#882)
  • Improve overall performance by not creating a new rule engine for every endpoint resolution (#860)
  • Adopt polling API for uploading data in PutObject requests (#874)

Breaking changes

  • The trailing_checksums field of PutObjectParams is now an enum, with a new ReviewOnly option that allows disabling sending additional checksum headers to S3 while still computing them for use by UploadReview callbacks. (#849)

Other changes

  • No other changes.

v0.8.1 (April 10, 2024)

Breaking changes

  • No breaking changes.

Other changes

  • The maximum number of attempts for S3 requests can now be configured with the S3ClientConfig::max_attempts method or the AWS_MAX_ATTEMPTS environment variable. (#830)
  • Return server-side encryption headers in PutObjectResult. (#745)
  • Add support for AES256 server-side encryption (SSE-S3). (#827)
  • Expose memory consumption metrics for the CRT buffer pool (s3.client.buffer_pool.*). (#820)
  • Adopt new async write API for PutObject requests (#832)

v0.8.0 (March 8, 2024)

Breaking changes

  • S3 requests are now canceled when dropped. As part of this change, there is a new S3RequestError::RequestCanceled enum variant. (#794)

Other changes

  • Added new metrics to track number of known S3 endpoint IPs. (#778)
  • Request IDs are now logged for meta request failures. (#790)

v0.7.0 (February 12, 2023)

Breaking changes

  • The mock_client module is no longer enabled by default, and is now available by enabling the mock feature for this crate. (#723)

Other changes

  • Introduced a new ThroughputMockClient that simulates a target network throughput from an in-memory mock S3 client. This client requires the mock feature flag. (#723)
  • Updated some of the dependencies that aim to clean up our dependency closure. It includes the update of built dependency which fixes a vulnerability in libgit2-sys. (#731)

v0.6.2 (January 18, 2024)

Breaking changes

  • No breaking changes.

Other changes

  • Individual S3 requests made as part of meta requests are no longer logged at WARN, only DEBUG. For those log entries, the CRT error is now output to the logs. (#669)
  • Client user-agent now includes -dirty suffix to indicate when the client was built with uncommitted changes. (#678)

v0.6.1 (December 1, 2023)

Breaking changes

  • No breaking changes.

Other changes

  • Consume CRT bug fix for an issue where a large number of requests to S3 Express directory buckets could end up stuck waiting for initial S3 Express session to be created (awslabs/aws-c-s3#384)

v0.6.0 (November 28, 2023)

Breaking changes

  • No breaking changes.

Other changes

  • Endpoint resolver now supports resolving S3 Express One Zone endpoints and the new SigV4Express signing algorithm will be used for S3 Express One Zone buckets (#642)

v0.5.0 (November 21, 2023)

Breaking changes

  • The user_agent_prefix string field of S3ClientConfig has been replaced with a new user_agent field of type UserAgent to allow more flexible construction of user agent headers that fit the pattern of AWS SDKs (#608)

Other changes

  • Request tracing spans are now created with a unique target to allow them to be filtered out (#615)
  • Added InstanceInfo, a higher-level IMDS client that can retrieve metadata about an EC2 instance (#608)
  • ETags can now be unwrapped with into_inner(), and now implement Hash and Eq (#589, #593)
  • The MockClient now supports counting the number of requests performed, for use in tests that need to make assertions about requests (#567)

v0.4.0 (September 26, 2023)

Breaking changes

  • The crate has been reorganized to avoid exposing every type at the top level. See the crate documentation for more details. (#511)
  • Some errors, notably 403 Forbidden, that were previously handled by individual requests are now handled by shared logic, and may be returned differently (#413)
  • ListObjectsResult no longer includes the bucket field (#470)

Other changes

  • list_objects and head_object results now include the storage class and restore status of an object if available (#406, #467)
  • put_object now supports configuring trailing checksums (#320)
  • A new review_and_complete method on PutObjectRequest can be used to inspect the parts of a multi-part upload before completing it (#367)

v0.3.0 (June 20, 2023)

Breaking changes:

  • Use CRT's new asynchronous streaming APIs for put_object requests (#282, #295). This change modifies the put_object API.

Other changes:

  • Avoid using CRT auto-ranged-get infrastructure for small requests (#285)
  • Add NoSuchBucket error for head_object requests (#273)
  • Fix a bug in computing time-to-first-byte for per-request telemetry (#275)

v0.2.2 (May 31, 2023)

  • Fix a build failure when consuming this crate from outside a Git repository ((#269)
  • Include mountpoint-s3-client version in User-agent strings (#266)
  • Integrate per-request telemetry for S3 requests (#261)

v0.2.1 (May 26, 2023)

Initial release.