Zhengchao An
e3b51e0a94
test(s3): promote non-multipart get-part coverage ( #4286 )
2026-07-05 20:40:41 +08:00
houseme
76124423a4
fix: stabilize s3-tests delete key-limit coverage ( #4283 )
...
* fix: tighten list handling and s3 test support
* chore: tidy imports and metric updates
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Zhengchao An <anzhengchao@gmail.com >
* fix: address s3tests review follow-ups
---------
Signed-off-by: Zhengchao An <anzhengchao@gmail.com >
Co-authored-by: Zhengchao An <anzhengchao@gmail.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-07-05 20:35:32 +08:00
houseme
db277b17a4
fix: harden GET object performance paths ( #4271 )
...
* fix: harden GET object performance paths
* fix: satisfy GET multipart layer guard
* fix: keep v1 list markers S3 compatible
* perf: tighten GET direct-memory decision
* ci: isolate s3tests from scanner workload
* refactor: simplify get object body lifecycle
* fix: satisfy get object clippy
2026-07-05 12:03:22 +08:00
Zhengchao An
8a0617865b
refactor(replication): route app storage through ecstore ( #4251 )
2026-07-04 02:00:28 +08:00
Zhengchao An
3779e674a8
ci(s3-tests): add mint workflow, multi-node sweep, and API coverage tool ( #4206 )
...
Follow-ups to the compatibility harness rework:
- Weekly full sweep now runs as a matrix over both topologies: single
node and the 4-node distributed cluster. Manual dispatch keeps the
test-mode input.
- New mint workflow (weekly + dispatch) runs MinIO Mint against RustFS:
functional suites of real client SDKs and tools (awscli, mc,
aws-sdk-*, minio-*, s3cmd, ...), catching client-specific signing and
streaming edge cases that boto3-only ceph/s3-tests cannot. Report-only
for test failures with a per-suite summary table; fails only when mint
produces no results.
- New scripts/s3-tests/api_coverage.py quantifies API surface coverage
by diffing the s3s S3 trait (at the Cargo.toml pinned revision)
against the methods overridden in impl S3 for FS, distinguishing
NotImplemented defaults from delegating defaults (e.g. post_object).
Current state: 76/101 operations covered (75 overridden, 1 delegated).
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 00:00:34 +08:00
Zhengchao An
3eeb459ece
ci(s3-tests): pin upstream suite, add weekly full sweep and compat report ( #4204 )
...
Reworks the S3 compatibility test harness for reproducibility and faster
feedback:
- Pin ceph/s3-tests to a fixed commit (S3TESTS_REV, fetch-by-SHA) so the
449-test PR gate is reproducible; previously every run cloned upstream
master, letting test renames or assertion changes break CI silently.
- PR gate (ci.yml s3-implemented-tests): MAXFAIL=0 + XDIST=4 so a single
CI round reports every failure in parallel instead of stopping at the
first one serially.
- Add TEST_SCOPE=all to run.sh to run the entire upstream suite, and
report_compat.py to diff junit results against the classification
lists (regressions, promotion candidates, unclassified tests).
- Rewrite e2e-s3tests.yml: delegate execution to run.sh (single source
of truth; also fixes the broken config generation that left S3_PORT
empty), add a weekly scheduled full sweep that fails only on whitelist
regressions, and fix the multi-node topology to a real distributed
cluster (endpoint-style RUSTFS_VOLUMES) instead of four independent
single-node stores behind a load balancer.
- Docs: rewrite stale .github/s3tests/README.md (marker-era strategy),
update scripts/s3-tests/README.md, fix dead build_testexpr.sh
reference in S3_COMPAT_WORKFLOW.md, drop legacy non_standard_tests.txt.
All 747 classified test names verified present at the pinned revision;
13 upstream tests are currently unclassified and will surface in the
first full-sweep report.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 23:43:19 +08:00
安正超
f35821f75d
test(s3): reclassify passing atomic conditional write ( #3698 )
2026-06-21 20:54:52 +08:00
houseme
fc93a27974
fix(storage): harden local SSE-S3 fallback ( #3564 )
...
* fix: harden local SSE-S3 fallback
* test: update managed SSE-S3 assumptions
* chore: keep issue plan local only
* test(ci): seed local SSE key for s3-tests
2026-06-18 15:29:52 +08:00
唐小鸭
f7724d223b
feat(rio): rio_v2 is compatible with minio for storing data. ( #3115 )
...
* Set up a compatibility layer for replacing old Rio components with new ones.
* fix(rio). compress range
* feat(rio). Add the experimental feature rio_v2 to support minio data at the binary level.
* feat(rio_v2): add sse-c test
* test compression component
* simple fix
* fix minlz encode
* fix metadata
* fix kms key cache error
* Update launch.json
* ci: set nix crate download user agent
* fix: gate obs pyroscope backend
* ignore minio test
* fix encrypt check
* fix
* fix
* fix
* Update object_usecase.rs
* Update ci.yml
* fix
* ci add rio-v2 test
* fix
* ci fix
* fix
* Reconstructed into a more reasonable compatibility mode
* fix
* fix
---------
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: 唐小鸭 <tangtang1251@qq.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-06-08 11:59:14 +00:00
安正超
7cc730d9c0
ci: isolate s3 test runner state ( #3180 )
2026-06-02 22:40:37 +08:00
安正超
ac97ceb744
fix(config): restore default credential startup ( #3114 )
...
* fix(config): restore default credential startup
* fix: align e2e credentials with server env
* fix(config): restore default credential consistency
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-29 11:52:46 +00:00
安正超
6898e720dd
fix(security): harden proxy auth and default credentials ( #2981 )
...
* fix(security): harden proxy auth and default credentials
* fix(security): address proxy and credential feedback
2026-05-16 04:01:50 +00:00
yihong
824c4f7673
docs: fix some dead links ( #2975 )
...
Signed-off-by: yihong0618 <zouzou0208@gmail.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-16 10:06:53 +08:00
安正超
f84d8983ed
test(s3): promote passing SSE multipart cases ( #2900 )
2026-05-10 13:16:23 +00:00
安正超
6896b38dc2
test(s3): promote lifecycle expiration header tests ( #2858 )
2026-05-07 13:08:42 +00:00
安正超
b10db403b6
test(s3): promote passing copy metadata case ( #2832 )
2026-05-06 13:58:32 +00:00
houseme
1e9c75a201
feat(ecstore): enforce local disk topology guardrails and expose device ids ( #2679 )
2026-04-25 06:02:02 +00:00
安正超
83bac39417
test(s3): promote passing compatibility cases ( #2600 )
2026-04-19 14:42:56 +00:00
安正超
ac443a90ce
test(s3): reclassify passing compatibility cases ( #2586 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-18 09:15:29 +00:00
weisd
d637c4d342
fix(object-lock): recover remaining s3 tests ( #2294 )
2026-03-26 12:11:34 +08:00
weisd
59c437d901
feat(object-lock): complete legal hold enforcement ( #2293 )
2026-03-26 10:58:10 +08:00
weisd
28f57b228c
feat(s3): advance parity coverage ( #2278 )
2026-03-24 17:29:33 +08:00
weisd
b9b7d86ae4
feat: improve legacy metadata and admin compatibility ( #2202 )
2026-03-18 21:05:09 +08:00
安正超
08e1f4670b
fix: restore default CORS fallback and STS object ACL ownership ( #2053 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-03-03 01:08:50 +08:00
安正超
273dbc9c38
feat(s3): return 409 BucketAlreadyExists when non-owner creates existing bucket ( #2034 )
2026-03-01 22:53:41 +08:00
安正超
f0c5d762f3
feat(s3): enforce RestrictPublicBuckets for anonymous access ( #2033 )
...
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-01 20:50:19 +08:00
安正超
798e620088
fix(s3): add x-amz-grant-* headers to policy condition values ( #2031 )
2026-03-01 19:00:04 +08:00
安正超
e5e1010c31
fix(s3): return InvalidRange when CopySourceRange exceeds source object size ( #2029 )
2026-03-01 17:46:31 +08:00
安正超
8aecc7267b
fix(s3): implement S3-compliant CORS and bucket existence checks ( #2026 )
2026-03-01 16:02:02 +08:00
安正超
f42b155f59
fix(s3): allow Object Lock on versioned buckets and reject invalid checksums ( #2024 )
2026-03-01 14:19:02 +08:00
安正超
fbb162d8bb
test(s3): promote 145 passing tests to implemented list ( #2023 )
2026-03-01 12:55:49 +08:00
安正超
e7466eb1cc
fix: policy StringNotEquals double negation and delete_objects version mapping ( #2015 )
2026-03-01 03:13:52 +08:00
安正超
fe884eabfc
fix(s3): improve S3 API compatibility for versioning, SSE, and policy ( #2013 )
2026-03-01 02:21:13 +08:00
安正超
0701e1c35f
chore(s3-tests): promote 42 passing tests to implemented list ( #2011 )
2026-03-01 01:39:08 +08:00
安正超
f93db578df
fix(s3): reject invalid SSE algorithm (aes:kms) in PutObject ( #2008 )
2026-03-01 00:56:26 +08:00
安正超
1872bdcedd
fix(s3): reject SSE-C with partial headers per S3 spec ( #2007 )
2026-02-28 22:56:35 +08:00
安正超
3f5ccb20fc
fix(s3): normalize GetObjectAttributes ETag XML response ( #2002 )
2026-02-28 14:53:53 +08:00
安正超
a24cbbb7a6
fix(s3): return proper HTTP 400 for SSE-C validation errors ( #1998 )
2026-02-28 10:24:46 +08:00
安正超
4211652991
refactor(app): add application layer module entry ( #1907 )
2026-02-22 22:15:37 +08:00
安正超
173dad27d1
fix: preserve exact JSON format in bucket policy GET response ( #1598 )
...
Co-authored-by: loverustfs <hello@rustfs.com >
2026-01-24 23:02:01 +08:00
安正超
43bf846633
fix: correct max_keys field in list_object_versions response ( #1576 )
...
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-22 20:58:03 +08:00
安正超
87ead2bea3
fix: implement get_object_torrent to return 404 NoSuchKey ( #1575 )
...
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-21 21:49:22 +08:00
安正超
47ec125589
fix(s3): return NoSuchUpload for abort_multipart_upload when upload_id not found ( #1569 )
...
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-21 20:45:18 +08:00
安正超
9fc1c264b0
fix(s3): add x-amz-tagging-count header to HEAD object response ( #1568 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-01-21 20:45:06 +08:00
安正超
e4ad86ada6
test(s3): add 9 delimiter list tests to implemented tests ( #1410 )
2026-01-06 21:13:39 +08:00
安正超
e7a3129be4
feat: s3 tests classification ( #1392 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-01-05 22:24:35 +08:00
安正超
0b6f3302ce
fix: improve s3-tests readiness detection and Python package installation ( #1390 )
2026-01-05 17:56:42 +08:00
安正超
60103f0f72
fix: s3 api compatibility ( #1370 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-01-05 16:54:16 +08:00
安正超
61b3100260
fix: s3 list object versions next marker ( #1328 )
2026-01-01 23:26:32 +08:00
安正超
056a0ee62b
feat: add local s3-tests script with configurable options and improvements ( #1300 )
2025-12-29 23:48:32 +08:00