# 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) - 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) ### 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) ### 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) ### Removed - Drop `tree.service` param (now endpoints from `peers` section are used) (#133) ## [0.27.0] - Karpinsky - 2023-07-12 This is a first FrostFS S3 Gateway release named after [Karpinsky glacier](https://en.wikipedia.org/wiki/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](https://github.com/nspcc-dev/neofs-s3-gw) 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. [0.27.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/b2148cc3...v0.27.0 [Unreleased]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.27.0...master