Ben McClelland and GitHub
930e337719
Merge pull request #1860 from versity/ben/readme
...
chore: update readme for testing overview
2026-02-16 14:13:52 -08:00
Ben McClelland and GitHub
4264d481ac
Merge pull request #1859 from versity/dependabot/go_modules/dev-dependencies-ecbd0c0999
...
chore(deps): bump github.com/clipperhouse/uax29/v2 from 2.6.0 to 2.7.0 in the dev-dependencies group
2026-02-16 14:13:32 -08:00
Ben McClelland
dc0572bf42
chore: update readme for testing overview
2026-02-16 13:51:22 -08:00
dependabot[bot] and GitHub
6e9f0db0c7
chore(deps): bump github.com/clipperhouse/uax29/v2
...
Bumps the dev-dependencies group with 1 update: [github.com/clipperhouse/uax29/v2](https://github.com/clipperhouse/uax29 ).
Updates `github.com/clipperhouse/uax29/v2` from 2.6.0 to 2.7.0
- [Release notes](https://github.com/clipperhouse/uax29/releases )
- [Commits](https://github.com/clipperhouse/uax29/compare/v2.6.0...v2.7.0 )
---
updated-dependencies:
- dependency-name: github.com/clipperhouse/uax29/v2
dependency-version: 2.7.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-16 21:40:05 +00:00
Ben McClelland and GitHub
c9198846d5
Merge pull request #1858 from versity/ben/go-mod-tidy
...
chore: cleanup go.mod with go mod tidy
2026-02-16 13:38:15 -08:00
Ben McClelland
3f2de08620
chore: cleanup go.mod with go mod tidy
2026-02-16 12:58:49 -08:00
Ben McClelland and GitHub
a420d8b340
Merge pull request #1856 from versity/sis/error-response-content-type
...
fix: adds application/xml Content-Type to error responses
2026-02-16 12:53:26 -08:00
Ben McClelland and GitHub
107f2b3ae3
Merge pull request #1850 from versity/sis/internal-error-debug-logger
...
fix: replace `debuglogger.Logf("Internal Error, %v", err)` with `debuglogger.InternalError(err)`
2026-02-16 12:25:57 -08:00
niksis02
2232efd328
fix: adds application/xml Content-Type to error responses
...
Fixes #1852
Fixes #1821
Fiber used to return the `text/plain` default `Content-Type` for error responses, because it wasn't explicitly set. Now for all error responses the `application/xml` content type is set.
2026-02-16 21:54:11 +04:00
niksis02
68755ca700
fix: replace debuglogger.Logf("Internal Error, %v", err) with debuglogger.InternalError(err)
2026-02-13 21:03:58 +04:00
Ben McClelland and GitHub
f782bbcdce
Merge pull request #1841 from versity/test/templates
...
test: test for not-implemented content-type, add first template test
2026-02-11 15:08:22 -08:00
Luke McCrone
e810d4204d
test: not-implemented type test, first template usage
2026-02-11 16:52:20 -03:00
Andrii Bratanin and GitHub
9c212997dc
feat: allow anonymous access for s3proxy backend
...
* Update client.go to support anonymous S3 access
* Update s3.go to make access and secret parameters optional
* Update example.conf for more clear S3 access and secret usage
Fixes #1836
2026-02-11 11:03:02 -08:00
Ben McClelland and GitHub
a9043041c9
Merge pull request #1829 from versity/dependabot/go_modules/dev-dependencies-93e58d7d82
...
chore(deps): bump the dev-dependencies group with 7 updates
2026-02-11 11:00:57 -08:00
Ben McClelland
3e26175265
feat: replace aws-sdk-go-v2 s3 manager with transfermanager
...
The latest version of the go sdk has deprecate the s3 manager in
favor of the new transfermanager. This updates to the new
transfermanager functionality for the two places we were using
the manager, iam s3 and integration tests.
This also removes the pinning of nats nkeys since they have fixed
the tags in their repo now. And general cleanup of the go.mod.
2026-02-11 09:58:15 -08:00
dependabot[bot] and Ben McClelland
09544283c7
chore(deps): bump the dev-dependencies group with 7 updates
...
Bumps the dev-dependencies group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [golang.org/x/sys](https://github.com/golang/sys ) | `0.40.0` | `0.41.0` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://github.com/aws/aws-sdk-go-v2 ) | `1.21.1` | `1.22.0` |
| [github.com/clipperhouse/uax29/v2](https://github.com/clipperhouse/uax29 ) | `2.5.0` | `2.6.0` |
| [github.com/klauspost/compress](https://github.com/klauspost/compress ) | `1.18.3` | `1.18.4` |
| [golang.org/x/crypto](https://github.com/golang/crypto ) | `0.47.0` | `0.48.0` |
| [golang.org/x/net](https://github.com/golang/net ) | `0.49.0` | `0.50.0` |
| [golang.org/x/text](https://github.com/golang/text ) | `0.33.0` | `0.34.0` |
Updates `golang.org/x/sys` from 0.40.0 to 0.41.0
- [Commits](https://github.com/golang/sys/compare/v0.40.0...v0.41.0 )
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/manager` from 1.21.1 to 1.22.0
- [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/v1.21.1...v1.22.0 )
Updates `github.com/clipperhouse/uax29/v2` from 2.5.0 to 2.6.0
- [Release notes](https://github.com/clipperhouse/uax29/releases )
- [Commits](https://github.com/clipperhouse/uax29/compare/v2.5.0...v2.6.0 )
Updates `github.com/klauspost/compress` from 1.18.3 to 1.18.4
- [Release notes](https://github.com/klauspost/compress/releases )
- [Commits](https://github.com/klauspost/compress/compare/v1.18.3...v1.18.4 )
Updates `golang.org/x/crypto` from 0.47.0 to 0.48.0
- [Commits](https://github.com/golang/crypto/compare/v0.47.0...v0.48.0 )
Updates `golang.org/x/net` from 0.49.0 to 0.50.0
- [Commits](https://github.com/golang/net/compare/v0.49.0...v0.50.0 )
Updates `golang.org/x/text` from 0.33.0 to 0.34.0
- [Release notes](https://github.com/golang/text/releases )
- [Commits](https://github.com/golang/text/compare/v0.33.0...v0.34.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/sys
dependency-version: 0.41.0
dependency-type: direct:production
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.22.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/clipperhouse/uax29/v2
dependency-version: 2.6.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/klauspost/compress
dependency-version: 1.18.4
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: golang.org/x/crypto
dependency-version: 0.48.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
dependency-version: 0.50.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
dependency-version: 0.34.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-11 08:23:08 -08:00
Ben McClelland and GitHub
f2daa0ad48
Merge pull request #1840 from versity/sis/webui-favicon
...
feat: add favicon to all pages in webui
2026-02-11 08:19:14 -08:00
Ben McClelland and GitHub
3856f99904
Merge pull request #1839 from versity/sis/deleteobject-if-match-etag-quotes
...
fix: fixes DeleteObject if-match quoted comparison
2026-02-11 08:18:35 -08:00
Ben McClelland and GitHub
3219eb76e6
Merge pull request #1834 from versity/ben/copy-source-decoding
...
fix: CopyObject with URL-encoded special chars
2026-02-11 08:13:16 -08:00
niksis02
fd0c9dfbfa
feat: add favicon to all pages in webui
...
Adds versity favicon to all web pages in webui.
2026-02-11 19:46:01 +04:00
niksis02
89aa822a40
fix: fixes DeleteObject if-match quoted comparison
...
Fixes #1835
If-Match in DeleteObject is a precondition header that compares the client-provided ETag with the server-side ETag before deleting the object. Previously, the comparison failed when the client sent an unquoted ETag, because server ETags are stored with quotes. The implementation now trims quotes from both the input ETag and the server ETag before comparison to avoid mismatches. Both quoted and unquoted ETags are valid according to S3.
2026-02-11 16:45:36 +04:00
Ben McClelland
e702a4860a
fix: CopyObject with URL-encoded special chars
...
CopyObject was failing with NoSuchKey when source keys contained special
characters like {} or spaces. The X-Amz-Copy-Source header is URL-encoded
by clients, but ParseCopySource wasn't decoding before filesystem access.
Added url.QueryUnescape() to properly decode bucket and object names,
fixing copy operations for keys with special characters.
Fixing this also uncovered an errors with azure blob url encoding with
similar special character handling. Added this fix in for the integration
tests to pass.
Fixes #1832
Fixes #1637
2026-02-10 14:55:18 -08:00
Ben McClelland and GitHub
a4323d5338
Merge pull request #1831 from versity/dependabot/github_actions/actions/download-artifact-7
2026-02-10 01:55:54 -08:00
dependabot[bot] and GitHub
d4ea895a9c
chore(deps): bump actions/download-artifact from 4 to 7
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 4 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v4...v7 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-10 00:12:44 +00:00
Ben McClelland and GitHub
76cb616b96
Merge pull request #1830 from versity/dependabot/github_actions/actions/upload-artifact-6
...
chore(deps): bump actions/upload-artifact from 4 to 6
2026-02-09 16:11:39 -08:00
Ben McClelland and GitHub
afbea9f878
Merge pull request #1828 from versity/ben/readme-updates
...
chore: update README.md to highlight new web gui feature
2026-02-09 16:10:57 -08:00
dependabot[bot] and GitHub
790bac2b3d
chore(deps): bump actions/upload-artifact from 4 to 6
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-09 23:57:05 +00:00
Ben McClelland
af76584a9d
chore: update README.md to highlight new web gui feature
2026-02-09 15:36:54 -08:00
Ben McClelland and GitHub
7f7b804958
Merge pull request #1827 from versity/ben/webgui-object-lock-md5
...
fix: webui md5 missing error when enabling directory object lock
v1.2.0
2026-02-09 13:56:22 -08:00
Ben McClelland
9343860321
fix: webui md5 missing error when enabling directory object lock
...
The PutBucketObjectLockConfiguration now requires Content-MD5
header to match AWS behavior. This broke the GUI from being able
to set object lock configuration for a bucket.
This fix adds the Content-MD5 header to this request.
2026-02-09 12:27:02 -08:00
Ben McClelland and GitHub
324950c3e4
Merge pull request #1820 from versity/ben/cors
...
fix: remove duplicate cors headers from options router
2026-02-06 09:28:36 -08:00
Ben McClelland and GitHub
e805003872
Merge pull request #1816 from versity/sis/max-limiter-errors
...
fix: fixes list-limiters parsing and validation
2026-02-06 09:28:18 -08:00
Ben McClelland and GitHub
b2a9b383ae
Merge pull request #1803 from versity/sis/list-mp-delimiter
...
feat: adds delimiter support in ListMultipartUploads
2026-02-06 09:27:32 -08:00
niksis02
2365f9f1ae
fix: fixes list-limiters parsing and validation
...
Fixes #1809
Fixes #1806
Fixes #1804
Fixes #1794
This PR focuses on correcting so-called "list-limiter" parsing and validation. The affected limiters include: `max-keys`, `max-uploads`, `max-parts`, `max-buckets`, `max-uploads` and `part-number-marker`. When a limiter value is outside the integer range, a specific `InvalidArgument` error is now returned. If the value is a valid integer but negative, a different `InvalidArgument` error is produced.
`max-buckets` has its own validation rules: completely invalid values and values outside the allowed range (`1 <= input <= 10000`) return distinct errors. For `ListObjectVersions`, negative `max-keys` values follow S3’s special-case behavior and return a different `InvalidArgument` error message.
Additionally, `GetObjectAttributes` now follows S3 semantics for `x-amz-max-parts`: S3 ignores invalid values, so the gateway now matches that behavior.
2026-02-06 14:21:56 +04:00
niksis02
2e6794007c
feat: adds delimiter support in ListMultipartUploads
...
Fixes #1792
Fixes #1747
Fixes #1797
Fixes #1799
This PR primarily introduces delimiter support and several bug fixes for the `ListMultipartUploads` action in the POSIX and Azure backends. Delimiter handling is now implemented — when a delimiter is present in multipart-upload object key names, the backend collects and returns the appropriate common prefixes.
This functionality is achieved by introducing a common multipart-upload lister in the backend package. All backends (Azure, POSIX) now use this lister. The lister accepts a list that is already sorted and filtered by `KeyMarker` and `Prefix`.
Previously, the `KeyMarker` was required to exactly match an existing multipart-upload object key. This restriction is removed. The listing now relies on a lexicographical comparison between the provided `KeyMarker` and existing multipart-upload object keys.
Validation for `UploadIdMarker` is also added to correctly return an `InvalidArgument` error for invalid upload IDs. If `KeyMarker` is missing, the `UploadIdMarker` is ignored entirely. If `KeyMarker` is provided, a valid upload ID is one that matches an upload belonging to *the first object key after the KeyMarker*. For example, if the `KeyMarker` is `foo`, but the provided `UploadIdMarker` corresponds to an upload under `quxx`, it is invalid. It must match one of the uploads for the next object key equal to `foo`.
Finally, this PR fixes multipart-upload sorting. Multipart uploads must be sorted primarily lexicographically by their object key, and secondarily—when multiple uploads share the same object key—by their initiation time in ascending order.
2026-02-06 14:16:16 +04:00
Ben McClelland and GitHub
e15bd4a5bc
Merge pull request #1818 from versity/test/rest_missing_tests
...
test: some not-implemented's, add list-object-v2 working test
2026-02-05 17:01:25 -08:00
Ben McClelland
11e5049573
fix: remove duplicate cors headers from options router
...
In the refactor for being able to set global CORS headers, the
options router was incorrectly set to use both CORS middlewares
casuing duplicate headers to be set. The ApplyBucketCORS()
middleware is not needed for options since this is already handled
by the CORSOoptions controller.
Fixes #1819
2026-02-05 16:54:46 -08:00
Luke McCrone
44fa5fa178
test: some not-implemented's, add list-object-v2 working test
2026-02-05 10:14:08 -03:00
Ben McClelland and GitHub
772e33be70
Merge pull request #1801 from wishdev/walker
...
fix: Address slowness with lexical sorting
2026-02-04 08:47:10 -08:00
Ben McClelland and GitHub
74a0396802
Merge pull request #1800 from versity/test/reporting
...
Test/reporting
2026-02-04 08:44:34 -08:00
Ben McClelland and GitHub
26490d07b1
Merge pull request #1817 from versity/ben/pin-nats-dep
...
fix: pin github.com/nats-io/nkeys version to v0.4.12
2026-02-04 08:43:51 -08:00
Ben McClelland
63fcdb38e2
fix: pin github.com/nats-io/nkeys version to v0.4.12
...
The go mod cache is listing a newer version than the latest tag in
the repo. So we need to pin this older version to prevent dependabot
from updating until the repo tags a newer version.
2026-02-04 08:30:45 -08:00
Ben McClelland and GitHub
35605683cf
Merge pull request #1807 from versity/dependabot/go_modules/dev-dependencies-50b95ed59f
...
chore(deps): bump the dev-dependencies group with 7 updates
2026-02-04 08:11:55 -08:00
dependabot[bot] and GitHub
82878f40e1
chore(deps): bump the dev-dependencies group with 7 updates
...
Bumps the dev-dependencies group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/DataDog/datadog-go/v5](https://github.com/DataDog/datadog-go ) | `5.8.2` | `5.8.3` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2 ) | `1.95.1` | `1.96.0` |
| [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber ) | `2.52.10` | `2.52.11` |
| [github.com/clipperhouse/uax29/v2](https://github.com/clipperhouse/uax29 ) | `2.4.0` | `2.5.0` |
| [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt ) | `5.3.0` | `5.3.1` |
| [github.com/nats-io/nkeys](https://github.com/nats-io/nkeys ) | `0.4.12` | `0.4.15` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://github.com/aws/aws-sdk-go-v2 ) | `1.21.0` | `1.21.1` |
Updates `github.com/DataDog/datadog-go/v5` from 5.8.2 to 5.8.3
- [Release notes](https://github.com/DataDog/datadog-go/releases )
- [Changelog](https://github.com/DataDog/datadog-go/blob/master/CHANGELOG.md )
- [Commits](https://github.com/DataDog/datadog-go/compare/v5.8.2...v5.8.3 )
Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.95.1 to 1.96.0
- [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/service/s3/v1.95.1...service/s3/v1.96.0 )
Updates `github.com/gofiber/fiber/v2` from 2.52.10 to 2.52.11
- [Release notes](https://github.com/gofiber/fiber/releases )
- [Commits](https://github.com/gofiber/fiber/compare/v2.52.10...v2.52.11 )
Updates `github.com/clipperhouse/uax29/v2` from 2.4.0 to 2.5.0
- [Release notes](https://github.com/clipperhouse/uax29/releases )
- [Commits](https://github.com/clipperhouse/uax29/compare/v2.4.0...v2.5.0 )
Updates `github.com/golang-jwt/jwt/v5` from 5.3.0 to 5.3.1
- [Release notes](https://github.com/golang-jwt/jwt/releases )
- [Commits](https://github.com/golang-jwt/jwt/compare/v5.3.0...v5.3.1 )
Updates `github.com/nats-io/nkeys` from 0.4.12 to 0.4.15
- [Release notes](https://github.com/nats-io/nkeys/releases )
- [Commits](https://github.com/nats-io/nkeys/compare/v0.4.12...v0.4.15 )
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/manager` from 1.21.0 to 1.21.1
- [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/v1.21.0...v1.21.1 )
---
updated-dependencies:
- dependency-name: github.com/DataDog/datadog-go/v5
dependency-version: 5.8.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.96.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/gofiber/fiber/v2
dependency-version: 2.52.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/clipperhouse/uax29/v2
dependency-version: 2.5.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/golang-jwt/jwt/v5
dependency-version: 5.3.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/nats-io/nkeys
dependency-version: 0.4.15
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/manager
dependency-version: 1.21.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-03 02:40:28 +00:00
John W Higgins
bcf341bdaa
Add "lexical" sort to walker.go
2026-02-01 16:10:23 -08:00
Luke McCrone
17adbeca9e
test: S3 command coverage reporting
2026-01-30 18:51:02 -03:00
John W Higgins
73e2df4105
Base import of cutdown version of io/fs/walk.go from golang as walker.go
2026-01-29 13:10:01 -08:00
John W Higgins
bef8f38f3e
Revert of 34da1833 and 8e18b431 for backend/walk.go
...
Revert the changes with regards to lexical sorting but only for the walk.go
code itself. Leave the tests alone.
2026-01-29 13:10:01 -08:00
Ben McClelland and GitHub
db12fb94a3
Merge pull request #1798 from versity/sis/listparts-remove-metadata-loading
2026-01-28 21:49:47 -08:00
niksis02
7017ffa2a3
fix: removes object metadata loading from posix ListParts
...
In the POSIX `ListParts` implementation, there was a code snippet that loaded the object metadata, even though it wasn’t needed and never used in the response. This redundant code has now been removed.
2026-01-28 21:12:56 +04:00