8f00d1fbb0
feat(admin): implement handler for delete group ( #1901 )
...
Signed-off-by: Niraj Yadav <[email protected] >
Signed-off-by: heihutu <[email protected] >
Co-authored-by: heihutu <[email protected] >
Co-authored-by: yxrxy <[email protected] >
Co-authored-by: Copilot <[email protected] >
Co-authored-by: 安正超 <[email protected] >
2026-02-24 13:00:46 +08:00
loverustfs and GitHub
5d737eaeb7
fix(ecstore): invalidate GlobalFileCache after write_all_private to fix DeleteMarker visibility ( #1890 )
2026-02-20 22:47:45 +08:00
cf633569a2
fix: remove duplicate common prefixes for slash delimiter ( #1797 ) ( #1841 )
...
Signed-off-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: Copilot <[email protected] >
Co-authored-by: heihutu <[email protected] >
Co-authored-by: Copilot <[email protected] >
Co-authored-by: houseme <[email protected] >
2026-02-17 21:36:31 +08:00
da58f8e291
fix: Allow non-admin users to read bucket quota configuration. ( #1759 )
...
Co-authored-by: houseme <[email protected] >
Co-authored-by: heihutu <[email protected] >
2026-02-10 11:23:21 +08:00
houseme and GitHub
0b870d6301
build(deps): bump the dependencies group with 19 updates ( #1745 )
2026-02-07 12:22:14 +08:00
5c2eda356e
feat: migrate FTP/SFTP to protocols crate and update dependencies ( #1580 )
...
Signed-off-by: yxrxy <[email protected] >
Signed-off-by: houseme <[email protected] >
Signed-off-by: heihutu <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: heihutu <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2026-02-06 20:58:42 +08:00
a2b88a79ec
test(e2e_test): add automated cluster environment for conditional PUT race test ( #1673 )
...
Co-authored-by: houseme <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2026-02-06 15:01:59 +08:00
loverustfs and GitHub
a4563f7b41
fix: return null versionId when suspended ( #1066 ) ( #1709 )
2026-02-04 09:22:52 +08:00
ec4458f846
Fix/correctly handle terraform s3 backend with versioned bucket ( #1686 )
...
Co-authored-by: loverustfs <[email protected] >
2026-02-02 12:43:07 +08:00
90ed75a3dc
refactor(utils/os): Optimize Windows OS utilities and add safety comments ( #1671 )
...
Co-authored-by: weisd <[email protected] >
2026-01-30 16:13:42 +08:00
dce117840c
refactor: NamespaceLock (nslock), AHM→Heal Crate, and Lock/Clippy Fixes ( #1664 )
...
Co-authored-by: Copilot <[email protected] >
Co-authored-by: weisd <[email protected] >
Co-authored-by: houseme <[email protected] >
2026-01-30 13:13:41 +08:00
安正超 and GitHub
4890fb25c1
fix: listobjects v2 pagination ( #1607 )
2026-01-25 09:30:08 +08:00
GatewayJ and GitHub
9285acba06
feat: object retention ( #1589 )
2026-01-24 22:12:45 +08:00
LeonWang0735 and GitHub
db5e72e475
Fix/correctly handle compression ( #1594 )
2026-01-24 10:55:10 +08:00
29d86036b1
feat: implement bucket quota system ( #1461 )
...
Signed-off-by: yxrxy <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2026-01-12 11:42:07 +08:00
703d961168
fix: honor bucket policy for authenticated users ( #1460 )
...
Co-authored-by: GatewayJ <[email protected] >
2026-01-10 20:01:28 +08:00
weisd and GitHub
5660208e89
Refactor RPC Authentication System for Improved Maintainability ( #1391 )
2026-01-05 19:51:51 +08:00
1d6c8750e7
build(deps): bump the dependencies group with 2 updates ( #1383 )
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: houseme <[email protected] >
2026-01-05 15:33:57 +08:00
38c2d74d36
fix: fix FTPS/SFTP download issues and optimize S3Client caching ( #1353 )
...
Co-authored-by: houseme <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2026-01-04 17:28:18 +08:00
cf53a9d84a
chore: replace native-tls with pure rustls for FTPS/SFTP e2e tests ( #1334 )
...
Signed-off-by: yxrxy <[email protected] >
Co-authored-by: Copilot <[email protected] >
2026-01-02 11:08:28 +08:00
houseme and GitHub
8d7cd4cb1b
chore: upgrade dependencies and migrate to aws-lc-rs ( #1333 )
2026-01-02 00:02:34 +08:00
yxrxy and GitHub
b8aa8214e2
Feat/ftps&sftp ( #1308 )
...
[feat] ftp / sftp
2025-12-31 09:01:15 +08:00
e3a0a07495
fix: ensure version_id is returned in S3 response headers ( #1272 )
...
Co-authored-by: houseme <[email protected] >
Co-authored-by: 安正超 <[email protected] >
2025-12-28 09:41:32 +08:00
af5c0b13ef
fix: HeadObject returns 404 for deleted objects with versioning enabled ( #1229 )
...
Co-authored-by: houseme <[email protected] >
2025-12-22 20:43:00 +08:00
352035a06f
feat: Implement AWS policy variables support ( #1131 )
...
Co-authored-by: houseme <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-12-16 13:32:01 +08:00
yihong and GitHub
67095c05f9
fix: update tool chain make everything happy ( #1134 )
...
Signed-off-by: yihong0618 <[email protected] >
2025-12-13 20:32:42 +08:00
fba201df3d
fix: harden data usage aggregation and cache handling ( #1102 )
...
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-12-11 09:55:25 +08:00
2c86fe30ec
Content encoding ( #1089 )
...
Signed-off-by: Jörg Thalheim <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-12-10 15:21:51 +08:00
20961d7c91
Add comprehensive special character handling with validation refactoring and extensive test coverage ( #1078 )
...
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-12-09 13:40:29 +08:00
069194f553
Fix/getobjectlength ( #920 )
...
* fix getobject content length resp
* Fix regression in exception handling for non-existent key with enhanced compression predicate and metadata improvements (#915 )
* Initial plan
* Fix GetObject regression by excluding error responses from compression
The issue was that CompressionLayer was attempting to compress error responses,
which could cause Content-Length header mismatches. By excluding 4xx and 5xx
responses from compression, we ensure error responses (like NoSuchKey) are sent
correctly without body truncation.
Co-authored-by: houseme <[email protected] >
* Enhance NoSuchKey fix with improved compression predicate and comprehensive tests
- Enhanced ShouldCompress predicate with size-based exclusion (< 256 bytes)
- Added detailed documentation explaining the compression logic
- Added debug logging for better observability
- Created comprehensive test suite with 4 test cases:
- test_get_deleted_object_returns_nosuchkey
- test_head_deleted_object_returns_nosuchkey
- test_get_nonexistent_object_returns_nosuchkey
- test_multiple_gets_deleted_object
- Added extensive inline documentation and comments
- Created docs/fix-nosuchkey-regression.md with full analysis
Co-authored-by: houseme <[email protected] >
* Add compression best practices documentation
Added comprehensive guide covering:
- Best practices for HTTP response compression
- Common pitfalls and solutions
- Performance considerations and trade-offs
- Testing guidelines and examples
- Monitoring and alerting recommendations
- Migration guide for existing services
Co-authored-by: houseme <[email protected] >
* fix
* fmt
* fmt
* Fix/objectdelete (#917 )
* fix getobject content length resp
* fix delete object
---------
Co-authored-by: houseme <[email protected] >
* Add comprehensive analysis of NoSuchKey fix and related improvements
Created detailed documentation analyzing:
- HTTP compression layer fix (primary issue)
- Content-length calculation fix from PR #917
- Delete object metadata fixes from PR #917
- How all components work together
- Complete scenario walkthrough
- Performance impact analysis
- Testing strategy and deployment checklist
This ties together all the changes in the PR branch including the merged
improvements from PR #917 .
Co-authored-by: houseme <[email protected] >
* replace `once_cell` to `std`
* fmt
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: weisd <[email protected] >
* fmt
---------
Co-authored-by: weisd <[email protected] >
Co-authored-by: Copilot <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: weisd <[email protected] >
2025-11-24 18:56:34 +08:00
安正超 and GitHub
dd47fcf2a8
fix: restore localized samples in tests ( #749 )
...
* fix: restore required localized examples
* style: fix formatting issues
2025-10-29 13:16:31 +08:00
houseme and GitHub
c5264f9703
improve code for metrics and switch tokio-tar to astral-tokio-tar ( #705 )
...
* improve code for metrics and switch tokio-tar to astral-tokio-tar
* remove log
* fix
2025-10-24 13:07:56 +08:00
42d3645d6f
fix(targets): make target removal and reload transactional; prevent reappearing entries ( #662 )
...
* feat: improve code for notify
* upgrade starshard version
* upgrade version
* Fix ETag format to comply with HTTP standards by wrapping with quotes (#592 )
* Initial plan
* Fix ETag format to comply with HTTP standards by wrapping with quotes
Co-authored-by: overtrue <[email protected] >
* bufigx
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: overtrue <[email protected] >
Co-authored-by: overtrue <[email protected] >
* Improve lock (#596 )
* improve lock
Signed-off-by: Mu junxiang <[email protected] >
* feat(tests): add wait_for_object_absence helper and improve lifecycle test reliability
Signed-off-by: Mu junxiang <[email protected] >
* chore: remove dirty docs
Signed-off-by: Mu junxiang <[email protected] >
---------
Signed-off-by: Mu junxiang <[email protected] >
* feat(append): implement object append operations with state tracking (#599 )
* feat(append): implement object append operations with state tracking
Signed-off-by: junxiang Mu <[email protected] >
* chore: rebase
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
* build(deps): upgrade s3s (#595 )
Co-authored-by: loverustfs <[email protected] >
* fix: validate mqtt broker
* improve code for `import`
* fix
* improve
* remove logger from `rustfs-obs` crate
* remove code for config Observability
* fix
* improve code
* fix comment
* up
* up
* upgrade version
* fix
* fmt
* upgrade tokio version to 1.48.0
* upgrade `datafusion` and `reed-solomon-simd` version
* fix
* fmt
* improve code for notify webhook example
* improve code
* fix
* fix
* fmt
---------
Signed-off-by: Mu junxiang <[email protected] >
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: Copilot <[email protected] >
Co-authored-by: overtrue <[email protected] >
Co-authored-by: overtrue <[email protected] >
Co-authored-by: guojidan <[email protected] >
Co-authored-by: Nugine <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-10-17 15:34:53 +08:00
安正超 and GitHub
639bf0c233
Revert "feat(append): implement object append operations with state tracking ( #599 )" ( #646 )
...
This reverts commit 4f73760a45 .
2025-10-12 23:47:51 +08:00
Nugine and GitHub
626c7ed34a
fix: CompleteMultipartUpload encryption ( #626 )
2025-10-08 20:27:40 +08:00
guojidan and GitHub
4f73760a45
feat(append): implement object append operations with state tracking ( #599 )
...
* feat(append): implement object append operations with state tracking
Signed-off-by: junxiang Mu <[email protected] >
* chore: rebase
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
2025-09-27 20:06:26 -07:00
guojidan and GitHub
be66cf8bd3
Improve lock ( #596 )
...
* improve lock
Signed-off-by: Mu junxiang <[email protected] >
* feat(tests): add wait_for_object_absence helper and improve lifecycle test reliability
Signed-off-by: Mu junxiang <[email protected] >
* chore: remove dirty docs
Signed-off-by: Mu junxiang <[email protected] >
---------
Signed-off-by: Mu junxiang <[email protected] >
2025-09-27 17:57:56 -07:00
weisd and GitHub
90f21a9102
refactor: Reimplement bucket replication system with enhanced architecture ( #590 )
...
* feat:refactor replication
* use aws sdk for replication client
* refactor/replication
* merge main
* fix lifecycle test
2025-09-26 14:27:53 +08:00
houseme and GitHub
9b7f4d477a
Fix Tokio Runtime Initialization: Remove Private API Usage and Ensure IO Enabled ( #587 )
...
* fix: remove code
* improve code for tokio runtime config
* improve code for main
* fix: add tokio enable_all
* upgrade version
* improve for Cargo.toml
2025-09-24 22:23:31 +08:00
guojidan and GitHub
ef0dbaaeb5
feat(encryption): add managed encryption support for SSE-S3 and SSE-KMS ( #583 )
...
Signed-off-by: junxiang Mu <[email protected] >
2025-09-24 02:09:04 -07:00
29b0935be7
RustFS rustfs-audit Complete Implementation with Enterprise Observability ( #557 )
...
* Initial plan
* Implement core audit system with multi-target fan-out and configuration management
Co-authored-by: houseme <[email protected] >
* Changes before error encountered
Co-authored-by: houseme <[email protected] >
* Complete audit system with comprehensive observability and test coverage
Co-authored-by: houseme <[email protected] >
* improve code
* fix
* improve code
* fix test
* fix test
* fix
* add `rustfs-audit` to `rustfs`
* upgrade crate version
* fmt
* fmt
* fix
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-09-24 08:23:46 +08:00
guojidan and GitHub
9ddf6a011d
feature: support kms && encryt ( #573 )
...
* feat(kms): implement key management service with local and vault backends
Signed-off-by: junxiang Mu <[email protected] >
* feat(kms): enhance security with zeroize for sensitive data and improve key management
Signed-off-by: junxiang Mu <[email protected] >
* remove Hashi word
Signed-off-by: junxiang Mu <[email protected] >
* refactor: remove unused request structs from kms handlers
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
2025-09-22 17:53:05 +08:00
c2d782bed1
feat: support conditional writes ( #409 )
...
* feat: support conditional writes
* refactor: avoid using unwrap
* fix: obtain lock before check in CompleteMultiPartUpload
* refactor: do not obtain a lock when getting object meta
* fix: avoid using unwrap and modifying incoming arguments
* test: add e2e tests for conditional writes
---------
Co-authored-by: guojidan <[email protected] >
Co-authored-by: 安正超 <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-08-25 18:35:24 -07:00
junxiang Mu
e369e9f481
Feature: lock support auto release
...
Signed-off-by: junxiang Mu <[email protected] >
2025-08-09 17:52:08 +08:00
d987686c14
feat(lifecycle): Implement object lifecycle management functionality ( #358 )
...
* feat(lifecycle): Implement object lifecycle management functionality
Add a lifecycle module to automatically handle object expiration and transition during scanning
Modify the file metadata cache module to be publicly visible to support lifecycle operations
Adjust the scanning interval to a shorter time for testing lifecycle rules
Implement the parsing and execution logic for S3 lifecycle configurations
Add integration tests to verify the lifecycle expiration functionality
Update dependencies to support the new lifecycle features
Signed-off-by: junxiang Mu <[email protected] >
* fix cargo dependencies
Signed-off-by: junxiang Mu <[email protected] >
* fix fmt
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-08-08 10:51:02 +08:00
c5df1f92c2
refactor: replace lazy_static with LazyLock and notify crate registry create_targets_from_config ( #311 )
...
* improve code for notify
* improve code for logger and fix typo (#272 )
* Add GNU to build.yml (#275 )
* fix unzip error
* fix url change error
fix url change error
* Simplify user experience and integrate console and endpoint
Simplify user experience and integrate console and endpoint
* Add gnu to build.yml
* upgrade version
* feat: add `cargo clippy --fix --allow-dirty` to pre-commit command (#282 )
Resolves #277
- Add --fix flag to automatically fix clippy warnings
- Add --allow-dirty flag to run on dirty Git trees
- Improves code quality in pre-commit workflow
* fix: the issue where preview fails when the path length exceeds 255 characters (#280 )
* fix
* fix: improve Windows build support and CI/CD workflow (#283 )
- Fix Windows zip command issue by using PowerShell Compress-Archive
- Add Windows support for OSS upload with ossutil
- Replace Chinese comments with English in build.yml
- Fix bash syntax error in package_zip function
- Improve code formatting and consistency
- Update various configuration files for better cross-platform support
Resolves Windows build failures in GitHub Actions.
* fix: update link in README.md leading to a 404 error (#285 )
* add rustfs.spec for rustfs (#103 )
add support on loongarch64
* improve cargo.lock
* build(deps): bump the dependencies group with 5 updates (#289 )
Bumps the dependencies group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [hyper-util](https://github.com/hyperium/hyper-util ) | `0.1.15` | `0.1.16` |
| [rand](https://github.com/rust-random/rand ) | `0.9.1` | `0.9.2` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.140` | `1.0.141` |
| [strum](https://github.com/Peternator7/strum ) | `0.27.1` | `0.27.2` |
| [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) | `0.36.0` | `0.36.1` |
Updates `hyper-util` from 0.1.15 to 0.1.16
- [Release notes](https://github.com/hyperium/hyper-util/releases )
- [Changelog](https://github.com/hyperium/hyper-util/blob/master/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper-util/compare/v0.1.15...v0.1.16 )
Updates `rand` from 0.9.1 to 0.9.2
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/rand_core-0.9.1...rand_core-0.9.2 )
Updates `serde_json` from 1.0.140 to 1.0.141
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.140...v1.0.141 )
Updates `strum` from 0.27.1 to 0.27.2
- [Release notes](https://github.com/Peternator7/strum/releases )
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Peternator7/strum/compare/v0.27.1...v0.27.2 )
Updates `sysinfo` from 0.36.0 to 0.36.1
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.36.0...v0.36.1 )
---
updated-dependencies:
- dependency-name: hyper-util
dependency-version: 0.1.16
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: rand
dependency-version: 0.9.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: serde_json
dependency-version: 1.0.141
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: strum
dependency-version: 0.27.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: sysinfo
dependency-version: 0.36.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* improve code for logger
* improve
* upgrade
* refactor: 优化构建工作流,统一 latest 文件处理和简化制品上传 (#293 )
* Refactor: DatabaseManagerSystem as global
Signed-off-by: junxiang Mu <[email protected] >
* fix: fmt
Signed-off-by: junxiang Mu <[email protected] >
* Test: add e2e_test for s3select
Signed-off-by: junxiang Mu <[email protected] >
* Test: add test script for e2e
Signed-off-by: junxiang Mu <[email protected] >
* improve code for registry and intergation
* improve code for registry `create_targets_from_config`
* fix
* Feature up/ilm (#305 )
* fix
* fix
* fix
* fix delete-marker expiration. add api_restore.
* fix
* time retry object upload
* lock file
* make fmt
* fix
* restore object
* fix
* fix
* serde-rs-xml -> quick-xml
* fix
* checksum
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* transfer lang to english
* upgrade clap version from 4.5.41 to 4.5.42
* refactor: replace `lazy_static` with `LazyLock`
* add router
* fix: modify comment
* improve code
* fix typos
* fix
* fix: modify name and fmt
* improve code for registry
* fix test
---------
Signed-off-by: dependabot[bot] <[email protected] >
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: loverustfs <[email protected] >
Co-authored-by: 安正超 <[email protected] >
Co-authored-by: shiro.lee <[email protected] >
Co-authored-by: Marco Orlandin <[email protected] >
Co-authored-by: zhangwenlong <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: junxiang Mu <[email protected] >
Co-authored-by: likewu <[email protected] >
2025-07-30 19:02:10 +08:00
junxiang Mu
de905a878c
Cargo: use workspace dependence
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-28 11:02:40 +08:00
junxiang Mu
f3252f989b
Test: Add e2e test case for lock transactional
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-28 11:00:10 +08:00
junxiang Mu
612404c47f
Test: add e2e_test for s3select
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-25 15:07:44 +08:00
junxiang Mu
cad005bc21
refactor(lock): unify NamespaceLock client model and LockRequest API
...
- Refactor NamespaceLock to use a unified client vector and quorum mechanism,
removing legacy local/distributed lock split and related code.
- Update LockRequest to split timeout into acquire_timeout and ttl, and add
builder methods for both.
- Adjust all batch lock APIs to accept ttl and use new LockRequest fields.
- Update all affected tests and documentation for the new API.
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 11:52:57 +08:00