frostfs-s3-gw/CHANGELOG.md
Denis Kirillov 5ee73fad6a
All checks were successful
/ DCO (pull_request) Successful in 4m40s
/ Vulncheck (pull_request) Successful in 5m43s
/ Lint (pull_request) Successful in 10m27s
/ Tests (1.20) (pull_request) Successful in 5m41s
/ Tests (1.21) (pull_request) Successful in 5m47s
/ Builds (1.20) (pull_request) Successful in 1m9s
/ Builds (1.21) (pull_request) Successful in 4m7s
[#248] Correct NextVersionIDMarker in listing versions
Despite the spec https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html#API_ListObjectVersions_ResponseElements
says that
"When the number of responses exceeds the value of MaxKeys,
NextVersionIdMarker specifies the first object version not returned
 that satisfies the search criteria. Use this value for the
 version-id-marker request parameter in a subsequent request."
 the actual behavior of AWS S3 is returning NextVersionIdMarker as the last returned object version

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-10-31 17:36:24 +03:00

5 KiB

Changelog

This document outlines major changes between releases.

Unreleased

Fixed

  • Handle negative Content-Length on put (#125)
  • Use DisableURIPathEscaping to presign urls (#125)
  • Use specific s3 errors instead of InternalError where possible (#143)
  • grpc schemas in tree configuration (#166)
  • Return appropriate 404 code when object missed in storage but there is in gate cache (#158)
  • Replace part on re-upload when use multipart upload (#176)
  • Fix goroutine leak on put object error (#178)
  • Fix parsing signed headers in presigned urls (#182)
  • Fix url escaping (#188, #224)
  • Use correct keys in list-multipart-uploads response (#185)
  • Fix parsing key-marker for object list versions (#243)
  • Fix marshaling errors in DeleteObjects method (#222)
  • Fix status code in GET/HEAD delete marker (#226)
  • Fix NextVersionIDMarker in list-object-versions (#248)

Added

  • Add trace_id value into log record when tracing is enabled (#142)
  • Add basic error types and exit codes to frostfs-s3-authmate (#152)
  • Add a metric with addresses of nodes of the same and highest priority that are currently healthy (#51)
  • Support dump metrics descriptions (#80)
  • Add copies_numbers section to placement_policy in config file and support vectors of copies numbers (#70, #101)
  • Support impersonate bearer token (#81, #105)
  • Reload default and custom copies numbers on SIGHUP (#104)
  • Tracing support (#84, #140)
  • Return bearer token in s3-authmate obtain-secret result (#132)
  • Support multiple version credentials using GSet (#135)
  • Implement chunk uploading (#106)
  • Add new kludge.bypass_content_encoding_check_in_chunks config param (#146)
  • Add new frostfs.client_cut config param (#192)
  • Add new frostfs.buffer_max_size_for_put config param and sync TZ hash for PUT operations (#197)
  • Add X-Amz-Version-Id header after complete multipart upload (#227)

Changed

  • Update prometheus to v1.15.0 (#94)
  • Update go version to go1.19 (#118)
  • Remove object from tree and reset its cache on object deletion when it is already removed from storage (#78)
  • Finish rebranding (#2)
  • Timeout errors has code 504 now (#103)
  • Use request scope logger (#111)
  • Add s3-authmate update-secret command (#131)
  • Use default registerer for app metrics (#155)
  • Use chi router instead of archived gorlilla/mux (#149)
  • Complete multipart upload doesn't unnecessary copy now. Thus, the total time of multipart upload was reduced by 2 times (#63)
  • Use gate key to form object owner (#175)
  • Apply placement policies and copies if there is at least one valid value (#168)
  • Generalise config param use_default_xmlns_for_complete_multipart to use_default_xmlns so that use default xmlns for all requests (#221)
  • Set server IdleTimeout and ReadHeaderTimeout to 30s and allow to configure them (#220)

Removed

  • Drop tree.service param (now endpoints from peers section are used) (#133)
  • Drop sending whitespace characters during complete multipart upload and related config param kludge.complete_multipart_keepalive (#227)

0.27.0 - Karpinsky - 2023-07-12

This is a first FrostFS S3 Gateway release named after Karpinsky glacier.

Fixed

  • Using multiple servers require only one healthy (#12)
  • Renew token before it expires (#20)
  • Add generated deb builder files to .gitignore, and fix typo (#28)
  • Get empty bucket CORS from frostfs (#36)
  • Don't count pool error on client abort (#35)
  • Handle request cancelling (#69)
  • Clean up List and Name caches when object is missing in Tree service (#57)
  • Don't create unnecessary delete-markers (#83)
  • Too many pings error (#145)

Added

  • Billing metrics (#5, #26, #29)
  • Return container name in head-bucket response (#18)
  • Multiple configs support (#21)
  • Bucket name resolving policy (#25)
  • Support string Action and Resource fields in bucketPolicy.Statement (#32)
  • Add new kludge.use_default_xmlns_for_complete_multipart config param (#40)
  • Return X-Owner-Id in head-bucket response (#79)
  • Support multiple tree service endpoints (#74, #110, #114)

Changed

  • Repository rebranding (#1)
  • Update neo-go to v0.101.0 (#14)
  • Update viper to v1.15.0 (#14)
  • Update go version to go1.18 (#16)
  • Return error on invalid LocationConstraint (#23)
  • Limit number of objects to delete at one time (#37)
  • CompleteMultipartUpload handler now sends whitespace characters to keep alive client's connection (#60)
  • Support new system attributes (#64)
  • Abstract network communication in TreeClient (#59, #75)
  • Changed values for frostfs_s3_gw_state_health metric (#91)

Older versions

This project is a fork of NeoFS S3 Gateway from version v0.26.0. To see CHANGELOG for older versions, refer to https://github.com/nspcc-dev/neofs-s3-gw/blob/master/CHANGELOG.md.