frostfs-s3-gw/CHANGELOG.md

5.4 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)
  • Add handling of X-Amz-Copy-Source-Server-Side-Encryption-Customer-* headers during copy (#217)
  • Add new logger.destination config param (#236)
  • Add X-Amz-Content-Sha256 header validation (#218)
  • Support frostfsid contract. See frostfsid config section (#260)
  • Support per namespace placement policies configuration (see namespaces.config config param) (#266)

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)
  • Return ETag value in quotes (#219)

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.