Commit Graph

355 Commits (v0.28.1)

Author SHA1 Message Date
Marina Biryukova aa2c016f83 [#205] Add md5 checksum in ETag by config param
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2023-12-07 12:20:14 +00:00
Alexey Vanin 2f29229383 [#249] Skip flaky test
/ Builds (1.20) (pull_request) Successful in 4m27s Details
/ Builds (1.21) (pull_request) Successful in 4m30s Details
/ DCO (pull_request) Successful in 5m11s Details
/ Vulncheck (pull_request) Successful in 7m37s Details
/ Lint (pull_request) Successful in 10m4s Details
/ Tests (1.20) (pull_request) Successful in 7m27s Details
/ Tests (1.21) (pull_request) Successful in 5m18s Details
Test manually passes but it breaks CI/CD sometimes.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-10-26 10:48:43 +03:00
Denis Kirillov 5f9555afad [#237] Fix list object versions marker param
/ DCO (pull_request) Successful in 1m33s Details
/ Builds (1.20) (pull_request) Successful in 1m59s Details
/ Builds (1.21) (pull_request) Successful in 1m33s Details
/ Lint (pull_request) Successful in 4m20s Details
/ Tests (1.20) (pull_request) Successful in 21m13s Details
/ Tests (1.21) (pull_request) Successful in 1m43s Details
/ Vulncheck (pull_request) Successful in 1m4s Details
According to https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html
we have to use `key-marker`

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-10-12 11:36:39 +03:00
Marina Biryukova 12cf29aed2 [#207] Fix part-number-marker handling
/ DCO (pull_request) Successful in 1m57s Details
/ Vulncheck (pull_request) Successful in 2m21s Details
/ Builds (1.20) (pull_request) Successful in 1m36s Details
/ Builds (1.21) (pull_request) Successful in 7m55s Details
/ Lint (pull_request) Successful in 13m57s Details
/ Tests (1.20) (pull_request) Successful in 2m34s Details
/ Tests (1.21) (pull_request) Successful in 1m57s Details
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2023-09-19 12:43:07 +03:00
Marina Biryukova 066b9a0250 [#142] Add trace ID into log when tracing is enabled
/ Vulncheck (pull_request) Successful in 1m29s Details
/ DCO (pull_request) Successful in 2m18s Details
/ Lint (pull_request) Successful in 3m48s Details
/ Tests (1.20) (pull_request) Successful in 2m4s Details
/ Tests (1.21) (pull_request) Successful in 1m42s Details
/ Builds (1.20) (pull_request) Successful in 7m6s Details
/ Builds (1.21) (pull_request) Successful in 1m56s Details
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2023-09-07 14:19:37 +03:00
Marina Biryukova 9120e97ac5 [#203] Add go1.21 to CI
/ DCO (pull_request) Successful in 59s Details
/ Vulncheck (pull_request) Successful in 1m35s Details
/ Builds (1.20) (pull_request) Successful in 1m21s Details
/ Builds (1.21) (pull_request) Successful in 7m46s Details
/ Lint (pull_request) Successful in 12m44s Details
/ Tests (1.20) (pull_request) Successful in 2m9s Details
/ Tests (1.21) (pull_request) Successful in 2m0s Details
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
2023-08-31 15:26:07 +03:00
Denis Kirillov b5fce5c8d2 [#168] Skip only invalid policies and copies instead of ignoring all of them
/ DCO (pull_request) Successful in 2m48s Details
/ Vulncheck (pull_request) Successful in 3m30s Details
/ Builds (1.19) (pull_request) Successful in 3m39s Details
/ Builds (1.20) (pull_request) Successful in 3m28s Details
/ Lint (pull_request) Successful in 4m14s Details
/ Tests (1.19) (pull_request) Successful in 3m3s Details
/ Tests (1.20) (pull_request) Successful in 2m45s Details
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-25 12:05:30 +03:00
Denis Kirillov 6617adc22b [#185] Use correct object size when object is combined or encrypted
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-24 18:03:08 +03:00
Denis Kirillov 8898c2ec08 [#185] Add tests for list multipart uploads
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-24 18:01:08 +03:00
Roman Loginov 8efcc957ea [#96] Move log messages to constants
/ DCO (pull_request) Successful in 1m35s Details
/ Builds (1.19) (pull_request) Successful in 2m14s Details
/ Builds (1.20) (pull_request) Successful in 2m9s Details
/ Vulncheck (pull_request) Successful in 5m39s Details
/ Lint (pull_request) Successful in 2m49s Details
/ Tests (1.19) (pull_request) Successful in 7m34s Details
/ Tests (1.20) (pull_request) Successful in 1m44s Details
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2023-08-23 18:32:31 +03:00
Denis Kirillov 6b728fef87 [#192] Add tests to make sure client_cut flag is passed to sdk
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-23 06:26:55 +00:00
Denis Kirillov fcf1c45ad2 [#188] Fix url escaping
/ Vulncheck (pull_request) Successful in 2m41s Details
/ Builds (1.19) (pull_request) Successful in 3m51s Details
/ Builds (1.20) (pull_request) Successful in 3m22s Details
/ DCO (pull_request) Successful in 5m9s Details
/ Lint (pull_request) Successful in 5m22s Details
/ Tests (1.19) (pull_request) Successful in 5m39s Details
/ Tests (1.20) (pull_request) Successful in 5m18s Details
Url escaping has already been done in `net/http/request.go`

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-22 11:27:39 +03:00
Artem Tataurov 94a42fa273 [#51] Update frostfs-sdk-go
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-08-17 14:26:25 +03:00
Roman Loginov 40d7f844e3 [#137] Refactor context data retrievers
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2023-08-16 14:05:38 +00:00
Denis Kirillov 18878b66d3 [#175] Use gate owner as object owner
/ DCO (pull_request) Failing after 3s Details
/ Vulncheck (pull_request) Failing after 2s Details
/ Builds (1.19) (pull_request) Failing after 3s Details
/ Builds (1.20) (pull_request) Successful in 7m47s Details
/ Lint (pull_request) Failing after 4s Details
/ Tests (1.19) (pull_request) Successful in 8m8s Details
/ Tests (1.20) (pull_request) Failing after 3s Details
This is required because node check session token owner
TrueCloudLab/frostfs-node#528
For client cut TrueCloudLab/frostfs-sdk-go#114
such owner will be gate owner

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-08 12:22:33 +03:00
Denis Kirillov fe897ec588 [#178] wrapReader: Fix goroutine leak
/ Vulncheck (pull_request) Successful in 59s Details
/ Builds (1.19) (pull_request) Successful in 1m28s Details
/ Builds (1.20) (pull_request) Successful in 1m19s Details
/ DCO (pull_request) Successful in 45s Details
/ Lint (pull_request) Successful in 1m45s Details
/ Tests (1.19) (pull_request) Successful in 7m51s Details
/ Tests (1.20) (pull_request) Successful in 1m43s Details
In case of error in FrostFS.CreateObject wrapped reader
can be blocked because of synchronous pipe. We have to read out all payload in such case.

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-01 17:59:34 +03:00
Denis Kirillov 52931663e1 [#176] multipart: Replace part on re-upload
/ Builds (1.19) (pull_request) Successful in 2m57s Details
/ Builds (1.20) (pull_request) Successful in 2m36s Details
/ DCO (pull_request) Successful in 1m15s Details
/ Vulncheck (pull_request) Successful in 5m15s Details
/ Lint (pull_request) Successful in 3m50s Details
/ Tests (1.19) (pull_request) Successful in 8m14s Details
/ Tests (1.20) (pull_request) Successful in 3m17s Details
We want to have exactly one object and tree node for each part number

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-21 16:20:04 +03:00
Denis Kirillov 631b7f67b4 [#63] multipart: Log upload id for every failed request
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-20 14:00:15 +03:00
Denis Kirillov bcf5a85aab [#63] multipart: Fix copying
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-20 14:00:15 +03:00
Denis Kirillov ad81b599dd [#63] Add fast multipart upload
Add new flag to object tree meta `isCombined` that means
the object payload is list of parts that forms real payload.
Set this attribute when complete multipart upload not to do unnecessary copying.

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-20 14:00:15 +03:00
Denis Kirillov b59aa06637 [#146] Add kludge.bypass_content_encoding_check_in_chunks flag
/ Builds (1.19) (pull_request) Successful in 3m0s Details
/ Builds (1.20) (pull_request) Successful in 2m50s Details
/ DCO (pull_request) Failing after 1m9s Details
/ Vulncheck (pull_request) Successful in 1m20s Details
/ Lint (pull_request) Successful in 7m50s Details
/ Tests (1.19) (pull_request) Successful in 3m1s Details
/ Tests (1.20) (pull_request) Successful in 3m21s Details
Flag allows to skip checking `Content-Encoding` for `aws-chunked` value

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-18 14:49:52 +03:00
Denis Kirillov d62aa7b979 [#146] Fix preconditions: trim quotes in etags
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-18 14:49:03 +03:00
Denis Kirillov 751a9be7cc [#146] Move getting chunk payload reader to separate function
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-18 14:49:03 +03:00
Denis Kirillov 14ef9ff091 [#158] Separate init object reader from read itself
/ Vulncheck (pull_request) Successful in 1m40s Details
/ Builds (1.19) (pull_request) Successful in 2m54s Details
/ Builds (1.20) (pull_request) Successful in 2m39s Details
/ DCO (pull_request) Successful in 3m48s Details
/ Lint (pull_request) Successful in 3m32s Details
/ Tests (1.19) (pull_request) Successful in 2m38s Details
/ Tests (1.20) (pull_request) Successful in 2m55s Details
To be able to handle cases and return appropriate http status code
when object missed in storage but gate cache contains its metadata
we need write code after init object reader.
So we separate init reader from actual reading.

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-11 17:32:05 +03:00
Denis Kirillov fc90981c03 [#149] Update inner imports after moving middlewares
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-11 17:25:09 +03:00
Denis Kirillov d531b13866 [#143] Add more context to some s3 errors
/ DCO (pull_request) Successful in 1m18s Details
/ Vulncheck (pull_request) Successful in 1m50s Details
/ Lint (pull_request) Successful in 3m1s Details
/ Tests (1.19) (pull_request) Successful in 2m47s Details
/ Tests (1.20) (pull_request) Successful in 3m2s Details
/ Builds (1.19) (pull_request) Successful in 2m54s Details
/ Builds (1.20) (pull_request) Successful in 7m58s Details
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-30 12:08:33 +03:00
Denis Kirillov f921bc8af5 [#143] Fix typo
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-30 12:04:52 +03:00
Denis Kirillov be03c5178f [#143] Fix NoSuchKey error on get/head
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-30 12:04:52 +03:00
Denis Kirillov 9df8695463 [#143] Fix transformToS3Error function
/ Builds (1.19) (pull_request) Successful in 3m11s Details
/ Builds (1.20) (pull_request) Successful in 2m57s Details
/ DCO (pull_request) Successful in 4m7s Details
/ Lint (pull_request) Successful in 2m25s Details
/ Tests (1.19) (pull_request) Successful in 3m9s Details
/ Tests (1.20) (pull_request) Successful in 3m18s Details
/ Vulncheck (pull_request) Successful in 1m15s Details
Unwrap error before checking for s3 error

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-21 17:16:40 +03:00
Artem Tataurov 614d703726 [#106] Add chunk uploading
/ DCO (pull_request) Successful in 1m4s Details
/ Vulncheck (pull_request) Successful in 1m50s Details
/ Builds (1.19) (pull_request) Successful in 9m1s Details
/ Builds (1.20) (pull_request) Successful in 2m20s Details
/ Lint (pull_request) Successful in 10m19s Details
/ Tests (1.19) (pull_request) Successful in 2m45s Details
/ Tests (1.20) (pull_request) Successful in 3m19s Details
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-06-21 10:23:57 +03:00
Denis Kirillov 23593eee3d [#111] Use request scope logger
/ Lint (pull_request) Failing after 32s Details
/ Tests (1.19) (pull_request) Failing after 32s Details
/ Tests (1.20) (pull_request) Failing after 32s Details
/ Builds (1.19) (pull_request) Failing after 32s Details
/ Builds (1.20) (pull_request) Failing after 32s Details
/ Vulncheck (pull_request) Failing after 57s Details
/ DCO (pull_request) Failing after 1m0s Details
Store child zap logger with request scope fields into context.
Request scoped fields: request_id, api/method, bucket, object

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-19 13:54:51 +03:00
Denis Kirillov 462589fc0c [#103] Return 504 http code on timeout errors
/ Vulncheck (pull_request) Successful in 1m42s Details
/ Lint (pull_request) Successful in 3m31s Details
/ Tests (1.19) (pull_request) Successful in 2m57s Details
/ Tests (1.20) (pull_request) Successful in 3m4s Details
/ Builds (1.19) (pull_request) Successful in 2m35s Details
/ Builds (1.20) (pull_request) Successful in 2m39s Details
/ DCO (pull_request) Successful in 1m7s Details
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-14 09:16:21 +03:00
Denis Kirillov 4a6e3a19ce [#125] Handle negative Content-Length on put
Add computing actual object size during calculating hash on put.
Use this actual value to save in tree and cache

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-02 14:16:19 +00:00
Alexey Vanin 868edfdb31 [#78] Add test of bucket removal with object not found error
DCO Details
Builds (1.20) Details
Tests (1.19) Details
Tests (1.20) Details
Builds (1.19) Details
Lint Details
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-06-01 16:13:28 +03:00
Artem Tataurov a0f0d792b8 [#78] layer: Clean up already removed object from tree
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-05-24 17:42:46 +03:00
Artem Tataurov 9f186d9aba [#104] app: Reload copies numbers on SIGHUP
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-05-23 13:19:58 +03:00
Artem Tataurov e24bc3f2ce [#101] app: Refactor the default copies number setting
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-05-17 11:36:28 +03:00
Artem Tataurov e487ee5b7d [#70] Add arrays of copies numbers for location constraints
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-05-03 13:48:26 +03:00
Denis Kirillov ee8cce662b [#74] service/tree: Add logger
Log error instead of failing when multiple unversioned nodes are found

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-04-26 16:39:57 +03:00
Denis Kirillov 70ec5a0a5b [#83] Don't create extra delete marker
We shouldn't create delete marker if:
1. object doesn't exist at all
2. last version is already a delete marker

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-04-19 17:56:11 +03:00
Artem Tataurov a5c89b78bc [#79] Return X-Owner-Id in head-bucket response
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-04-17 10:12:25 +03:00
Denis Kirillov a025f2e9c5 [#59] tree: Make interface for tree service client
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-29 09:34:10 +03:00
Denis Kirillov bd3164c57f [#68] Fix pre-commit issues
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-24 16:22:06 +03:00
Alexey Vanin ef556bd8ac [#60] Use session token to set eACL during Complete Multipart Upload
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-22 11:22:11 +03:00
Alexey Vanin 5104683f68 [#60] Refactor start of periodic XML writer
Reduce code duplication for error handling

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-22 11:02:16 +03:00
Alexey Vanin 8151753eeb [#60] Use periodic white space XML writer in Complete Multipart Upload
This mechanism is used by Amazon S3 to keep client's
connection alive while object is being constructed from
the upload parts.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-20 13:34:22 +03:00
Alexey Vanin 2282c32822 [#60] Add *NoHeader functions
Such functions should be used together with periodic white space
XML writer.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-20 12:07:36 +03:00
Alexey Vanin cf18158da4 [#60] Implement periodic white space XML writer
Periodic white space XML writer sends XML header
and white spaces to the io.Writer.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-20 12:04:34 +03:00
Denis Kirillov 0af06c3bd9 [TrueCloudLab#40] Add param to configure xml decoder
This parameter enables parsing xml body without
xmlns="http://s3.amazonaws.com/doc/2006-03-01/" attribute
for CompleteMultipartUpload requests

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-09 15:44:13 +03:00
Denis Kirillov 64e7356acc [TrueCloudLab#32] Add custom policy unmarshaler
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-09 11:19:01 +00:00