niksis02
afbcbcac13
fix: fixes all the available actions date xml marshalling for response body.
...
Fixes the response body parsing for all available actions to correctly parse date fields (e.g., `LastModified`) into the correct format.
2025-05-13 23:59:59 +04:00
Ben McClelland
8e2d51e501
Merge pull request #1290 from versity/dependabot/go_modules/dev-dependencies-e1f3205b40
...
chore(deps): bump github.com/valyala/fasthttp from 1.61.0 to 1.62.0 in the dev-dependencies group
2025-05-12 16:02:45 -07:00
dependabot[bot]
1f5f040840
chore(deps): bump github.com/valyala/fasthttp
...
Bumps the dev-dependencies group with 1 update: [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp ).
Updates `github.com/valyala/fasthttp` from 1.61.0 to 1.62.0
- [Release notes](https://github.com/valyala/fasthttp/releases )
- [Commits](https://github.com/valyala/fasthttp/compare/v1.61.0...v1.62.0 )
---
updated-dependencies:
- dependency-name: github.com/valyala/fasthttp
dependency-version: 1.62.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-12 21:57:13 +00:00
Ben McClelland
d3bcd8ffc5
Merge pull request #1289 from versity/sis/copy-object-date
...
fix: fixes the LastModified date formatting in CopyObject result.
2025-05-12 13:15:47 -07:00
Ben McClelland
4c5f65da96
Merge pull request #1286 from ndjones/xml-omit-empty-continuationtoken
...
add omit on empty for ContinuationToken
2025-05-12 13:14:41 -07:00
niksis02
323717bcf1
fix: fixes the LastModified date formatting in CopyObject result.
...
Fixes #1276
Creates the custom `s3response.CopyObjectOutput` type to handle the `LastModified` date property formatting correctly. It uses `time.RFC3339` to format the date to match the format that s3 uses.
2025-05-12 23:30:47 +04:00
Ben McClelland
be275bbb2c
Merge pull request #1284 from versity/sis/list-objects-common-prefx-optimization
...
feat: optimizes backend.Walk and backend.WalkVersions to avoid sorting the common prefixes.
2025-05-12 10:57:07 -07:00
Nick Jones
a022c3bdb6
mount-s3 has strict XML parsing which doesn't like receiving this tag empty
2025-05-12 20:59:26 +12:00
niksis02
d3585e6c1c
feat: optimizes backend.Walk and backend.WalkVersions to avoid sorting the common prefixes.
...
Common prefixes were originally stored in a `map[string]struct{}`, which was then converted to a slice and sorted. The new implementation stores the common prefixes in a `map[string]int`, where the map value represents the index of the common prefix. There's no need to sort the common prefixes array, as `fs.WalkDir` comes with sorted directories and files.
2025-05-10 01:59:39 +04:00
Ben McClelland
42b03b866c
Merge pull request #1278 from versity/sis/etag-quotes
...
fix: adds the surrounding quotes on ETag in PutObject for dir objects and in UploadPartCopy.
2025-05-08 14:40:39 -07:00
niksis02
3740d79173
fix: adds the surrounding quotes on ETag in PutObject for dir objects and in UploadPartCopy.
...
Fixes #1277
Fixes #1235
Adds surrounding quotes on `ETag` when creating a directory object. Adds the quotes in `UploadPartCopy` as well.
2025-05-09 00:29:23 +04:00
Ben McClelland
f4577d4af5
Merge pull request #1274 from versity/sis/versioning-getobject-success-test-fix
...
fix: fixes the context cancelation issue in Versioning_GetObject_success integration test.
2025-05-08 10:05:15 -07:00
niksis02
809d969afb
fix: fixes the context cancelation issue in Versioning_GetObject_success integration test.
...
Fixes #1271
In the `Versioning_GetObject_success` integration test the contexts are canceled before reading the full request body after `GetObject`.
Changes the behaviour to defer the context cancelation, to be sure it's canceled after the full request body is read.
2025-05-08 20:34:18 +04:00
Ben McClelland
3a9f8c6525
Merge pull request #1272 from versity/sis/debug-logging-chunk-readers
...
feat: adds debug logging for chunk readers.
2025-05-07 13:55:01 -07:00
niksis02
23b5e60854
feat: adds debug logging for chunk readers.
...
Closes #1221
Adds debug logging for `signed`/`unsigned` chunk readers.
Adds the `debuglogger.Infof` log method, which prints out green info logs with `[INFO]:` prefix.
The debug logging inclues some chunk details: size, signature, trailers. It also prints out stash/release stash operations.
The error cases are logged with standart yellow `[DEBUG]:` prefix.
The `String to sign` block in signed chunk reader is logged in purple horizontal borders with title.
2025-05-08 00:22:01 +04:00
Ben McClelland
2d5d641824
Merge pull request #1270 from versity/ben/event-log-panic
...
fix: panic with malformed request in event/log handlers
2025-05-07 11:13:44 -07:00
Ben McClelland
4478ed1143
fix: panic with malformed request in event/log handlers
...
Sending the following malformed request with eevnt notifcations
or access logs enabled will cause a panic related to parsing the
bucket and object from the invalid request path:
printf "GET GET HTTP/1.1\r\nHost: $HOST\r\n\r\n" | nc 127.0.0.1 7070
The fix is to add bounds checks on the slice returned from
splitting the request path to set the bucket/object.
Fixes #1269
2025-05-06 17:42:05 -07:00
Ben McClelland
22703de0c8
Merge pull request #1267 from versity/ben/controller-bounds-check
...
fix: add bounds check for ContentLength type conversion
2025-05-06 08:27:38 -07:00
Ben McClelland
5122b8c6ed
Merge pull request #1268 from sebastian-heinz/use-path-style
...
use path style
2025-05-06 08:19:49 -07:00
sebastian-heinz
42013d365b
use path style
2025-05-06 10:28:16 +08:00
Ben McClelland
a77c24f61f
Merge pull request #1266 from versity/dependabot/go_modules/dev-dependencies-de083807b3
...
chore(deps): bump the dev-dependencies group with 7 updates
2025-05-05 16:44:48 -07:00
Ben McClelland
e7294c631f
fix: add bounds check for ContentLength type conversion
...
On 32-bit systems, this value could overflow. Add a check for the
overflow and return ErrInvalidRange if it does overflow.
The type in GetObjectOutput for ContentLength is *int64, but the
fasthttp.RequestCtx.SetBodyStream() takes type int. So there is
no way to set the bodysize to the correct limit if the value
overflows.
2025-05-05 16:36:29 -07:00
dependabot[bot]
c3334008f5
chore(deps): bump the dev-dependencies group with 7 updates
...
Bumps the dev-dependencies group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go ) | `1.41.2` | `1.42.0` |
| [golang.org/x/sync](https://github.com/golang/sync ) | `0.13.0` | `0.14.0` |
| [golang.org/x/sys](https://github.com/golang/sys ) | `0.32.0` | `0.33.0` |
| [golang.org/x/crypto](https://github.com/golang/crypto ) | `0.37.0` | `0.38.0` |
| [golang.org/x/net](https://github.com/golang/net ) | `0.39.0` | `0.40.0` |
| [golang.org/x/text](https://github.com/golang/text ) | `0.24.0` | `0.25.0` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://github.com/aws/aws-sdk-go-v2 ) | `1.17.74` | `1.17.75` |
Updates `github.com/nats-io/nats.go` from 1.41.2 to 1.42.0
- [Release notes](https://github.com/nats-io/nats.go/releases )
- [Commits](https://github.com/nats-io/nats.go/compare/v1.41.2...v1.42.0 )
Updates `golang.org/x/sync` from 0.13.0 to 0.14.0
- [Commits](https://github.com/golang/sync/compare/v0.13.0...v0.14.0 )
Updates `golang.org/x/sys` from 0.32.0 to 0.33.0
- [Commits](https://github.com/golang/sys/compare/v0.32.0...v0.33.0 )
Updates `golang.org/x/crypto` from 0.37.0 to 0.38.0
- [Commits](https://github.com/golang/crypto/compare/v0.37.0...v0.38.0 )
Updates `golang.org/x/net` from 0.39.0 to 0.40.0
- [Commits](https://github.com/golang/net/compare/v0.39.0...v0.40.0 )
Updates `golang.org/x/text` from 0.24.0 to 0.25.0
- [Release notes](https://github.com/golang/text/releases )
- [Commits](https://github.com/golang/text/compare/v0.24.0...v0.25.0 )
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/manager` from 1.17.74 to 1.17.75
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/feature/s3/manager/v1.17.74...feature/s3/manager/v1.17.75 )
---
updated-dependencies:
- dependency-name: github.com/nats-io/nats.go
dependency-version: 1.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/sync
dependency-version: 0.14.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/sys
dependency-version: 0.33.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/crypto
dependency-version: 0.38.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
dependency-version: 0.40.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
dependency-version: 0.25.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/manager
dependency-version: 1.17.75
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-05 22:51:13 +00:00
Ben McClelland
b12b0d242e
Merge pull request #1264 from versity/test/copy_object_param
2025-05-05 15:09:24 -07:00
Luke McCrone
384bb463d3
test: copy object tests (copy source, payload)
2025-05-05 17:25:56 -03:00
Ben McClelland
4b34ef1a5f
Merge pull request #1263 from versity/sis/headobject-range
...
fix: fixes the range parsing for GetObject. Adds range query support for HeadObject.
2025-05-05 12:23:15 -07:00
Ben McClelland
e0999ce5a3
Merge pull request #1261 from versity/ben/scoutfs-fixes
...
Ben/scoutfs fixes
2025-05-05 11:42:36 -07:00
niksis02
dfa1ed2358
fix: fixes the range parsing for GetObject. Adds range query support for HeadObject.
...
Fixes #1258
Fixes #1257
Closes #1244
Adds range queries support for `HeadObject`.
Fixes the range parsing logic for `GetObject`, which is used for `HeadObject` as well. Both actions follow the same rules for range parsing.
Fixes the error message returned by `GetObject`.
2025-05-05 22:41:12 +04:00
Ben McClelland
98867bc731
Merge pull request #1262 from versity/ben/iam-internal
...
fix: use createtemp()/rename() for iam internal files
2025-05-05 08:12:27 -07:00
Ben McClelland
e98f7763d0
fix: use createtemp()/rename() for iam internal files
...
This cleans up a previous fix to #630 to use a better temp/rename
scheme thats less likely to have bad side effects.
The test for the previous issue still passes these cases, and we
will be less liekly to find a case where the file doesnt exist
or corrpted backup files.
2025-05-03 12:39:06 -07:00
Ben McClelland
e9286f7a23
feat: add scoutfs group tests to integration
2025-05-03 12:04:47 -07:00
Ben McClelland
a60d6a7faa
fix: scoutfs racing mutlipart uploads internal error
...
When multiple uploads with the same object key are racing, we can
end up with an EEXIST when trying to link the final object into
the namespace. When this happens, we should just remove the
existing file and try again since the semantics are that the
last upload should win.
2025-05-03 09:30:45 -07:00
Ben McClelland
a29f7b1839
fix: scoutfs missing ListObjectsV2() start after
...
This brings ListObjectsV2 for scoutfs in sync with posix to handle
the start after and continuation token ases.
2025-05-03 09:15:01 -07:00
Ben McClelland
6321406008
fix: scoutfs missing ListObjects() response fields
...
This fixes some tests that were fialing due to missing response
fields in ListObjects().
2025-05-03 09:07:56 -07:00
Ben McClelland
cd9cb108a3
Merge pull request #1260 from versity/ben/debug-log
...
feat: cleanup calling of debuglogger with managed debug setting
2025-05-02 18:26:01 -07:00
Ben McClelland
78910fb556
Merge pull request #1259 from versity/ben/test-fixes
...
fix: cleanup test cases that could lead to panic with invalid response
2025-05-02 18:25:48 -07:00
Ben McClelland
a9fcf63063
feat: cleanup calling of debuglogger with managed debug setting
2025-05-02 17:05:59 -07:00
Ben McClelland
1ef81d985e
fix: cleanup test cases that could lead to panic with invalid response
2025-05-02 16:44:10 -07:00
Ben McClelland
d19c446f72
Merge pull request #1256 from versity/ben/goreleaser-config-updates
...
chore: update goreleaser configs
2025-05-02 12:03:22 -07:00
Ben McClelland
2e7a7fcbe9
Merge pull request #1255 from versity/ben/fix-scoutfs-mp-etag-check
...
fix: scoutfs etag check for multipart uploads
2025-05-02 12:03:08 -07:00
Ben McClelland
c45b32066f
chore: update goreleaser configs
...
This cleans up deprecated config options, and sets the github
job to use the newer goreleaser v2.
Fixes #682
2025-05-02 10:37:26 -07:00
Ben McClelland
9f13b544f7
fix: scoutfs etag check for multipart uploads
...
The Etag can be quoted or not, so the check to verify the part
Etag must remove the quotes before checking for equality. This
check is the same now as posix.
2025-05-02 10:07:47 -07:00
Ben McClelland
1f96af5c66
Merge pull request #1254 from versity/sis/duplicate-xmlns-responses
...
fix: removes the xml pretty printing from debug logger.
2025-05-01 12:37:25 -07:00
Ben McClelland
ddceb28f98
Merge pull request #1252 from versity/ben/mp-complete-xml-response
...
fix: xml response field names for complete multipart upload
2025-05-01 12:36:00 -07:00
niksis02
c497baa733
fix: removes the xml pretty printing from debug logger.
...
Fixes #1253
Removes the xml pretty printing from debug logger. Instead it prints out the raw request/response body. This way we avoid to miss/add something to raw xml, which could lead to misconfusion.
2025-05-01 22:56:21 +04:00
Ben McClelland
9244e9100d
fix: xml response field names for complete multipart upload
...
The xml encoding for the s3.CompleteMultipartUploadOutput response
type was not producing exactly the right field names for the
expected complete multipart upload result.
This change follows the pattern we have had to do for other xml
responses to create our own type that will encode better to the
expected response.
This will change the backend.Backend interface, so plugins and
other backends will have to make the corresponding changes.
2025-04-30 14:36:48 -07:00
Ben McClelland
4eba4e031c
Merge pull request #1251 from versity/sis/uploadpart-etag-quotes
...
fix: adds quotes to part Etag in UploadPart
2025-04-30 14:35:34 -07:00
niksis02
32faf9a4c3
fix: adds quotes to part Etag in UploadPart
...
Fixes #1233
Add double quotes to the `ETag` in `UploadPart`.
2025-04-30 23:26:18 +04:00
Ben McClelland
a4d2f5c180
Merge pull request #1247 from ttschampel/feature/s3proxy_with_client
...
Add support for supplying s3.Client instance to S3 Proxy
2025-04-30 11:28:37 -07:00
Ben McClelland
24fbbdbd63
Merge pull request #1250 from versity/sis/obj-upload-max-limit
...
fix: Adds validation for Content-Length in upload operations.
2025-04-30 09:27:48 -07:00