Commit graph

882 commits

Author SHA1 Message Date
a7ce40d745 [#535] Support public access block operations
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-04-17 14:45:04 +00:00
e373f7c601 [#691] Update Go and linters
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2025-04-16 16:21:58 +03:00
0ba6989197 [#680] Move policy engine converter to s3-gw
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-04-14 12:11:54 +00:00
e788bb6ec9 [#638] Return InvalidAccessKeyId when appropriate
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-04-10 16:38:06 +03:00
81b01279dc [#683] Fix fuzz tests
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-04-08 12:59:31 +03:00
23afaf3191 [#673] Add bucket name logs
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-04-07 11:09:15 +03:00
091ec716d9 [#673] Correct s3 error code
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-04-07 11:09:15 +03:00
7626b6a04a [#673] Log deleted objects in multiple removing
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-04-07 11:09:13 +03:00
7d6e20fdad [#604] Add MFADelete tests with reworked mfa.Storage implementation
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2025-04-04 11:11:40 +03:00
7fbc69f4f5 [#604] Add support of MFADelete argument and x-amz-mfa header
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2025-04-03 15:36:07 +03:00
e45c1a2188 [#672] Support wildcard in allowed origins and headers
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-04-03 12:52:39 +03:00
2ad2531d3a [#455] Use contract to get containers
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-04-02 11:44:31 +03:00
949fc0b484 [#667] Use separate copies numbers for system containers
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-03-31 17:41:27 +03:00
42d6fc3fc6 [#613] Number of bucket tags increased to 50
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-03-27 16:10:33 +03:00
c5d8e12a1c [#653] Fix lint
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-03-26 10:30:33 +03:00
396c89f7bc [#653] Support removal old combined objects
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-03-26 10:13:27 +03:00
4a430257a4 [#653] Support removal old unversioned objects
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-03-25 12:49:43 +00:00
Aleksey Kravchenko
c0c99a1839 [#665] Prevent ContinuationToken duplication in ListObjectsV2 result
Signed-off-by: Aleksey Kravchenko <al.kravchenko@yadro.com>
2025-03-24 09:57:49 +03:00
8625b6e119 [#455] Allow preflight requests without auth
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-03-20 14:04:27 +03:00
c9c7379835 [#534] Return error if bucket has no tag set
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-03-20 08:48:32 +00:00
01d95d8cf4 [#641] Remove old CORS versions after putting new one
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-03-20 08:38:41 +00:00
c0c4bdb366 [#650] Add Copies Numbers for PostObject operation
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2025-03-14 15:57:05 +03:00
Aleksey Kravchenko
d85e5b10bb [#603] Fix GetBucketPolicyStatus case sensitivity
According to the AWS documentation
(https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html),
the `IsPublic` tag value should be in uppercase. However, the `aws-cli`
utility interprets such responses as always `false`.

To avoid incorrect interpretation, we now return the tag value in lowercase.

Signed-off-by: Aleksey Kravchenko <al.kravchenko@yadro.com>
2025-03-14 09:44:38 +00:00
9edec7d573 [#641] Rework CORS bucket behaviour
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-03-11 08:22:30 +00:00
1fac8e3ef2 [#656] Don't ignore Expect header in sigv4
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-03-10 12:01:18 +03:00
07b60b15b3 [#644] Support keepalive during listing
Send whitespaces every time as new object in list is ready
to prevent client from context cancelling.

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-27 09:37:04 +03:00
776fd042ef [#647] Dont send error after returning object payload
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-25 10:01:58 +00:00
ffe91b43a1 [#648] fix: Prevent InternalError response in PostObject handler
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2025-02-25 09:46:54 +00:00
2c0a032966 [#648] fix: Pass tags during PostObject request
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2025-02-25 09:46:54 +00:00
297199d885 [#637] Add IO tags
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-02-25 12:16:32 +03:00
0fba02aadb [#596] Use zaptest.Logger
Use zaptest to get logs which get printed only if a test fails
or if you ran go test -v.

Dont use zaptest.Logger for fuzz otherwise ngfuzz/libfuzz crashes

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-21 15:53:27 +03:00
ac0140506c [#498] middleware: Add spans to detail the trace
Spans are added only to the following middleware:
* PolicyCheck
* Auth
* FrostfsIDValidation

This is done this way because these middleware are basic and
they interact with frostfs-storage.

Also, an explicit context has been added to many functions
so that the middleware spans do not include all subsequent spans.

Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2025-02-21 11:25:08 +03:00
b5f0d0871c [#498] layer: Add spans to detail the trace
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2025-02-18 18:14:22 +03:00
4f0af5a0fd [#498] handler: Add spans to detail the trace
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2025-02-18 18:14:11 +03:00
bfec3e0a5e [#619] Fix content-length invalid check
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2025-02-18 14:15:23 +00:00
711d6b2c71 [#642] Simplify tests
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-17 09:44:41 +03:00
e0a54fcbd3 [#642] Fix streaming empty body
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-13 16:55:27 +03:00
853036e44e [#612] Make Content-Md5 header check optional
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2025-02-12 14:29:19 +03:00
ee46382a68 [#606] Reorganize some log tags
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2025-02-11 16:47:42 +03:00
b7650e01ac [#606] Make log tags more explicit
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2025-02-11 16:47:30 +03:00
e7f620f137 [#606] Support log tagging
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2025-02-11 15:12:20 +03:00
893b506c83 [#626] Fix ALREADY REMOVED response status code
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2025-02-10 16:10:45 +03:00
beec37797d [#626] Fix ALREADY REMOVED response status code
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
2025-02-07 17:37:40 +03:00
da9703ab63 [#623] Fix using copy numbers during multipart
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-06 14:41:27 +03:00
a53e50b324 [#607] Support sigV4a streaming with trailers
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-03 18:25:15 +03:00
5e9c562683 [#607] Fix aws example test for trailing with sigv4
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-03 18:25:15 +03:00
49bf3c1bce [#607] Support sigV4 streaming with trailers
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-03 18:25:15 +03:00
a4d9658fbb [#607] Support unsigned payload streaming with trailers
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-03 18:25:15 +03:00
bec63026bd [#607] Support unsigned payload streaming
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-03 18:25:15 +03:00
3d3dd00211 [#615] Use UNSIGNED_PAYLOAD to check sign
Use `UNSIGNED_PAYLOAD` to check signature if x-amz-content-sha256 isn't provided as signed header

https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html

" You include the literal string UNSIGNED-PAYLOAD when constructing a canonical request, and set the same value as the x-amz-content-sha256 header value when sending the request to Amazon S3"

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-01-30 13:16:40 +00:00