Zhengchao An
dee8e4e639
test(e2e): make security boundary tests assert real outcomes ( #4466 )
...
* test(e2e): make security boundary tests assert real outcomes
* fix(e2e): use expect_err to satisfy clippy err_expect lint
2026-07-08 22:01:46 +08:00
Zhengchao An
511ad31ba0
fix(s3): normalize root double-slash ListBuckets requests ( #4336 )
...
test(s3): MinIO parity for double-slash ListBuckets, invalid copy-source date, region-aware CreateBucket
- Add DoubleSlashListBucketsCompatLayer: rewrite `GET //` to `GET /` so
it routes to ListBuckets, matching MinIO browser-client behavior (#601 )
- Add e2e regression coverage for invalid copy-source conditional date
headers (#618 ) and region-aware MakeBucket(us-east-1) (#629 )
Refs rustfs/backlog#601 #618 #629
2026-07-07 04:36:16 +08:00
Ramakrishna Chilaka
eb85607e37
fix(s3): allow CopyObject to restore a historical object version ( #4250 )
2026-07-04 10:36:42 +08:00
Zhengchao An
ba1f162f0f
fix(server): normalize leading and duplicate slashes in object keys ( #4228 )
2026-07-03 12:50:57 +08:00
Zhengchao An
7329816ed7
test(e2e): add disk fault injection harness and reliability tests ( #4223 )
...
Add crates/e2e_test/src/chaos.rs with in-process fault-injection
primitives for a single-node multi-disk RustFS server: take a disk
offline (rename to <dir>.offline), bring it back online, replace a
disk with a fresh empty directory, corrupt an object's erasure shard
(part.* byte flips, xl.meta untouched), and SIGKILL/restart the server
with the same volumes and port.
Add reliability tests on a 4-disk (EC 2+2) topology, verified via
sha256 manifests recorded at write time:
- degraded read/write with one disk offline (incl. multipart object)
- bitrot read-through with two corrupted shards per object
- fresh-disk replacement healed via admin deep heal after a SIGKILL
restart
Also reuse the shared signed_admin_post helper from chaos.rs in the
heal regression suite instead of a duplicated local copy.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 11:37:32 +08:00
Zhengchao An
e37e367390
refactor: route remaining external storage boundaries ( #3889 )
2026-06-26 06:22:51 +08:00
Zhengchao An
30559f7e1b
refactor: collapse test fuzz ecstore thin bridges ( #3765 )
2026-06-23 07:04:51 +08:00
Zhengchao An
198fd4f150
refactor(runtime): route RustFS runtime consumers through storage owner ( #3756 )
2026-06-23 05:17:56 +08:00
Zhengchao An
539c68778d
refactor: remove standalone compat bridge modules ( #3740 )
2026-06-22 17:35:58 +08:00
cxymds
2f25cf606e
fix(storage): harden rebalance decommission state ( #3515 )
2026-06-22 12:03:13 +08:00
安正超
c098184c49
refactor: clean runtime and test storage boundaries ( #3573 )
...
* refactor: clean runtime observability select boundaries
* refactor: clean test harness fuzz storage boundaries
2026-06-18 18:09:25 +08:00
GatewayJ
a30cafa73f
fix(filemeta): detect physical data dirs for overwrite cleanup ( #3510 )
2026-06-18 11:58:12 +08:00
cxymds
ddd35badad
fix(ecstore): avoid offline disks on admin timeout ( #3263 )
...
* fix(ecstore): avoid offline disks on admin timeout
* fix(ecstore): handle poisoned admin cache locks
* fix(ecstore): recover poisoned admin cache on success
---------
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-06-08 08:35:36 +00:00
安正超
b436272642
fix: tolerate stalled listing readers after quorum ( #3110 )
...
Co-authored-by: loverustfs <hello@rustfs.com >
2026-05-29 08:57:57 +08:00
安正超
d9c683decc
fix: retry namespace lock quorum contention ( #3098 )
...
* fix: retry namespace lock quorum contention
* fix(lock): treat remote lock rpc failures as hard
* fix(lock): classify lock contention timeout and avoid hard rollback blocks
* fix(lock): handle namespace lock quorum timeouts
* fix(lock): refine quorum contention handling
* fix(lock): refine unrecoverable quorum handling logs
* fix: address namespace lock quorum review feedback
* test: stabilize batch quorum timing tests
* fix(lock): classify remote quorum failures
* fix: drop remote lock timeout grace period
* fix: satisfy clippy on lock quorum error
* fix: classify remote lock rpc timeouts as hard failures
* fix: fast fail impossible lock quorum attempts
* fix: retry on transient timeout with pending cleanup
* fix: evict remote lock timeout connections
* refactor: avoid duplicate timeout eviction warning
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-28 01:35:00 +00:00
安正超
0875f09a39
fix: rebuild wiped disks during admin heal ( #3084 )
...
* fix: rebuild wiped disks during admin heal
* Preserve forceStart heal admission semantics
* Address heal regression test review comments
* fix(heal): address admin heal review comments
* fix(heal): fix force-start dedup and test polling
* fix(heal): address unresolved review comments
* fix(heal): simplify dedup key for clippy
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-26 21:54:29 +08:00
houseme
129cb0f920
fix: make HeadObject consistent after write completion ( #2936 )
2026-05-13 03:27:38 +00:00
Sergei Z.
6275918d92
fix: empty-body requests without content length ( #2888 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: OmX <omx@oh-my-codex.dev >
2026-05-09 14:05:53 +00:00
安正超
50ddec3ffc
fix: preserve data on self metadata copy ( #2819 )
...
Co-authored-by: cxymds <Cxymds@qq.com >
2026-05-06 06:28:36 +00:00
安正超
3208f930c5
fix(s3): advertise byte ranges on head object ( #2802 )
2026-05-05 04:29:25 +00:00
唐小鸭
d949d4e794
fix: avoid sending HEAD bodies over TLS HTTP/2 ( #2648 )
...
Signed-off-by: 唐小鸭 <tangtang1251@qq.com >
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-04-25 01:33:08 +00:00
安正超
68d3dba9fc
fix: revert standalone #2351 artifacts (phase 5) ( #2535 )
2026-04-14 22:35:05 +08:00
weisd
0b99e02891
feat(ecstore): add stale multipart upload cleanup ( #2416 )
2026-04-07 18:57:07 +08:00
houseme
c9c2428373
fix(download): preserve archive download integrity ( #2415 )
...
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-04-07 16:25:34 +08:00
houseme
32bf8f5bf3
feat(storage): add direct chunk GET fast path ( #2351 )
...
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: cxymds <Cxymds@qq.com >
2026-04-07 08:33:46 +08:00
weisd
0fb070e912
feat(s3): support metadata extensions for bucket listings ( #2344 )
2026-03-30 22:03:13 +08:00
GatewayJ
3366bd2464
feat(iam,admin): prepared IAM auth, ExistingObjectTag, admin permission checks ( #2315 )
...
Signed-off-by: GatewayJ <835269233@qq.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: GatewayJ <8352692332qq.com>
2026-03-29 19:18:16 +08:00
安正超
f98664ea4a
test(s3): complete snowball auto-extract coverage ( #2313 )
2026-03-28 22:56:42 +08:00
weisd
28f57b228c
feat(s3): advance parity coverage ( #2278 )
2026-03-24 17:29:33 +08:00
weisd
a42320848c
fix(ecstore): invalidate xl.meta cache after writes and rename ( #2255 )
2026-03-22 11:30:29 +08:00
GatewayJ
ba32fd9d96
fix(s3): allow anonymous access when PublicAccessBlock config is miss… ( #2039 )
...
Co-authored-by: GatewayJ <8352692332qq.com>
2026-03-02 11:37:00 +08:00
Niraj Yadav
8f00d1fbb0
feat(admin): implement handler for delete group ( #1901 )
...
Signed-off-by: Niraj Yadav <niryadav@redhat.com >
Signed-off-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: yxrxy <yxrxytrigger@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-02-24 13:00:46 +08:00
loverustfs
5d737eaeb7
fix(ecstore): invalidate GlobalFileCache after write_all_private to fix DeleteMarker visibility ( #1890 )
2026-02-20 22:47:45 +08:00
loverustfs
cf633569a2
fix: remove duplicate common prefixes for slash delimiter ( #1797 ) ( #1841 )
...
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-02-17 21:36:31 +08:00
LeonWang0735
a2b88a79ec
test(e2e_test): add automated cluster environment for conditional PUT race test ( #1673 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-02-06 15:01:59 +08:00
houseme
90ed75a3dc
refactor(utils/os): Optimize Windows OS utilities and add safety comments ( #1671 )
...
Co-authored-by: weisd <weishidavip@163.com >
2026-01-30 16:13:42 +08:00
安正超
4890fb25c1
fix: listobjects v2 pagination ( #1607 )
2026-01-25 09:30:08 +08:00
GatewayJ
9285acba06
feat: object retention ( #1589 )
2026-01-24 22:12:45 +08:00
LeonWang0735
db5e72e475
Fix/correctly handle compression ( #1594 )
2026-01-24 10:55:10 +08:00
yxrxy
29d86036b1
feat: implement bucket quota system ( #1461 )
...
Signed-off-by: yxrxy <1532529704@qq.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-01-12 11:42:07 +08:00
loverustfs
703d961168
fix: honor bucket policy for authenticated users ( #1460 )
...
Co-authored-by: GatewayJ <835269233@qq.com >
2026-01-10 20:01:28 +08:00
yxrxy
b8aa8214e2
Feat/ftps&sftp ( #1308 )
...
[feat] ftp / sftp
2025-12-31 09:01:15 +08:00
loverustfs
e3a0a07495
fix: ensure version_id is returned in S3 response headers ( #1272 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2025-12-28 09:41:32 +08:00
yxrxy
352035a06f
feat: Implement AWS policy variables support ( #1131 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2025-12-16 13:32:01 +08:00
guojidan
fba201df3d
fix: harden data usage aggregation and cache handling ( #1102 )
...
Signed-off-by: junxiang Mu <1948535941@qq.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2025-12-11 09:55:25 +08:00
Jörg Thalheim
2c86fe30ec
Content encoding ( #1089 )
...
Signed-off-by: Jörg Thalheim <joerg@thalheim.io >
Co-authored-by: loverustfs <hello@rustfs.com >
2025-12-10 15:21:51 +08:00
Copilot
20961d7c91
Add comprehensive special character handling with validation refactoring and extensive test coverage ( #1078 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2025-12-09 13:40:29 +08:00
guojidan
9ddf6a011d
feature: support kms && encryt ( #573 )
...
* feat(kms): implement key management service with local and vault backends
Signed-off-by: junxiang Mu <1948535941@qq.com >
* feat(kms): enhance security with zeroize for sensitive data and improve key management
Signed-off-by: junxiang Mu <1948535941@qq.com >
* remove Hashi word
Signed-off-by: junxiang Mu <1948535941@qq.com >
* refactor: remove unused request structs from kms handlers
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-22 17:53:05 +08:00
houseme
5826396cd0
refactor: Restructure project layout and clean up dependencies ( #30 )
...
This commit introduces a significant reorganization of the project structure to improve maintainability and clarity.
Key changes include:
- Adjusted the directory layout for a more logical module organization.
- Removed unused crate dependencies, reducing the overall project size and potentially speeding up build times.
- Updated import paths and configuration files to reflect the structural changes.
2025-07-02 19:33:12 +08:00