forked from TrueCloudLab/frostfs-s3-gw
8.8 KiB
8.8 KiB
Changelog
This document outlines major changes between releases.
Unreleased
0.29.3 - 2024-07-19
Fixed
- Support tree split environment when multiple nodes may be part of the same sub path (#431)
- Collision of multipart name and system data in the tree (#431)
- Workaround for removal of multiple null versions in unversioned bucket (#431)
0.29.2 - 2024-07-03
Fixed
- Parsing of put-bucket-setting retry configuration (#398)
0.29.1 - 2024-06-20
Fixed
- OPTIONS request processing for object operations (#399)
Added
- Retries of put-bucket-setting operation during container creation (#398)
0.29.0 - Zemu - 2024-05-27
Fixed
- Fix marshaling errors in
DeleteObjects
method (#222) - Fix status code in GET/HEAD delete marker (#226)
- Fix
NextVersionIDMarker
inlist-object-versions
(#248) - Fix possibility of panic during SIGHUP (#288)
- Fix flaky
TestErrorTimeoutChecking
(make test
sometimes failed) (#290) - Fix log-level change on SIGHUP (#313)
- Fix anonymous put request (#311)
- Fix routine leak from nns resolver (#324)
- Fix svace errors (#325, #328)
Added
- 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) - Support control api to manage policies. See
control
config section (#258) - Add
namespace
label to billing metrics (#271) - Support policy-engine (#257, #259, #282, #283, #302, #307, #345, #351, #358, #360, #362, #383, #354)
- Support
proxy
contract (#287) - Authmate: support custom attributes (#292)
- Add FrostfsID cache (#269)
Changed
- Generalise config param
use_default_xmlns_for_complete_multipart
touse_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) - Use tombstone when delete multipart upload (#275)
- Support new parameter
cache.accessbox.removing_check_interval
(#305) - Use APE rules instead of eACL in container creation (#306)
- Rework bucket policy with policy-engine (#261)
- Improved object listing speed (#165, #347)
- Logging improvement (#300, #318)
Removed
- Drop sending whitespace characters during complete multipart upload and related config param
kludge.complete_multipart_keepalive
(#227) - Unused legacy minio related code (#299)
- Redundant output with journald logging (#298)
0.28.2 - 2024-05-27
Fixed
anon
user in billing metrics (#321)- Parts are not removed when multipart object removed (#370)
Added
- Put request in duration metrics (#280)
0.28.1 - 2024-01-24
Added
- MD5 hash as ETag and response header (#205)
- Tree pool traversal limit (#262)
Updating from 0.28.0
See new features.md5.enabled
and frostfs.tree_pool_max_attempts
config
parameters.
0.28.0 - Academy of Sciences - 2023-12-07
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 (#237) GetSubTree
failures (#179)- Unexpected EOF during multipart download (#210)
- Produce clean version in debian build (#245)
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 (#186)
- Support dump metrics descriptions (#80)
- Add
copies_numbers
section toplacement_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 selection of the node of the latest version of the object (#231)
- Soft memory limit with
runtime.soft_memory_limit
(#196) server_health
metric for every S3 endpoint status (#199)
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, #174, #188)
- 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)
statistic_tx_bytes_total
andstatistic_rx_bytes_total
metric tostatistic_bytes_total
metric withdirection
label (#153)- Refactor of context-stored data receivers (#137)
- Refactor fetch/parse config parameters functions (#117)
- Move all log messages to constants (#96)
- Allow zero value of
part-number-marker
(#207) - Clean tag node in the tree service instead of removal (#233)
Removed
- Drop
tree.service
param (now endpoints frompeers
section are used) (#133)
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
andResource
fields inbucketPolicy.Statement
(#32) - Add new
kludge.use_default_xmlns_for_complete_multipart
config param (#40) - Return
X-Owner-Id
inhead-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.