weisd
d2a83505fa
feat: mutipart cache
2025-11-17 14:14:57 +08:00
houseme
d4817a4bea
fix: modify logger from warn to info ( #842 )
...
* fix: modify logger from warn to info
* upgrade version
2025-11-12 11:13:38 +08:00
houseme
7e1a9e2ede
🔒 Upgrade Cryptography Libraries to Latest RC Versions ( #837 )
...
* fix
* chore: upgrade cryptography libraries to RC versions
- Upgrade aes-gcm to 0.11.0-rc.2 with rand_core support
- Upgrade chacha20poly1305 to 0.11.0-rc.2
- Upgrade argon2 to 0.6.0-rc.2 with std features
- Upgrade hmac to 0.13.0-rc.3
- Upgrade pbkdf2 to 0.13.0-rc.2
- Upgrade rsa to 0.10.0-rc.10
- Upgrade sha1 and sha2 to 0.11.0-rc.3
- Upgrade md-5 to 0.11.0-rc.3
These upgrades provide enhanced security features and performance
improvements while maintaining backward compatibility with existing
encryption workflows.
* add
* improve code
* fix
2025-11-11 21:10:03 +08:00
安正超
8a020ec4d9
wip ( #830 )
2025-11-11 09:34:58 +08:00
weisd
77a3489ed2
fix list object err ( #831 )
...
fix list object err (#831 )
#827
#815
#635
#752
2025-11-10 23:42:15 +08:00
weisd
5941062909
fix ( #828 )
2025-11-10 19:22:58 +08:00
houseme
d934e3905b
Refactor telemetry initialization for non-production environments ( #789 )
...
* add dep `scopeguard`
* improve for tracing
* fix
* fix
* improve code for import
* add logger trace id
* fix
* fix
* fix
* fix
* fix
2025-11-05 00:55:08 +08:00
Niklas Mollenhauer
79012be2c8
Add default storage class to ListObjectsV2 ( #765 )
...
* Add InvalidRangeSpec error
* Add EntityTooSmall to from_u32
* Add InvalidRangeSpec to from_u32
* Map InvalidRangeSpec to correct S3ErrorCode
* Return Error::InvalidRangeSpec
* Use auto implementation
* Add default storage class to ListObjectsV2
Resolves #764
* Add storage_class to response
* Make storage class optional so default won't be an empty string
---------
Co-authored-by: houseme <housemecn@gmail.com >
2025-10-31 19:32:25 +08:00
loverustfs
325ff62684
Issue 762 ( #763 )
...
* Add InvalidRangeSpec error
* Add EntityTooSmall to from_u32
* Add InvalidRangeSpec to from_u32
* Map InvalidRangeSpec to correct S3ErrorCode
* Return Error::InvalidRangeSpec
* Use auto implementation
---------
Co-authored-by: Niklas Mollenhauer <nikeee@outlook.com >
2025-10-31 17:20:18 +08:00
houseme
0714c7a9ca
modify logger level from info to error ( #744 )
...
* modify logger level from `info` to `error`
* fix test
* improve tokio runtime config
* add rustfs helm chart files (#747 )
* add rustfs helm chart files
* update readme file with helm chart
* delete helm chart license file
* fix typo in readme file
* fix: restore localized samples in tests (#749 )
* fix: restore required localized examples
* style: fix formatting issues
* improve code for Observability
* upgrade crates version
* fix
* up
* fix
---------
Co-authored-by: majinghe <42570491+majinghe@users.noreply.github.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2025-10-29 19:20:53 +08:00
安正超
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
weisd
40660e7b80
fix: scandir object ( #733 )
...
* fix: scandir object count
* fix: base64 list continuation_token
2025-10-28 15:02:43 +08:00
likewu
2aca1f77af
Fix/ilm ( #721 )
...
* fix tip remote tier error
* fix transitioned_object
* fix filemeta
* add GCS R2
* add aliyun tencent huaweicloud azure gcs r2 backend tier
* fix signer
* change azure to s3
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: loverustfs <155562731+loverustfs@users.noreply.github.com >
2025-10-27 20:23:50 +08:00
shiro.lee
6ab7619023
fix: The issue of multi-level objects created in Windows not being displayed has been fixed ( #661 ) ( #723 )
2025-10-26 12:00:13 +08:00
weisd
6a59c0a474
fix: multipart upload checksum validation ( #712 )
...
* fix multipart upload checksum
2025-10-24 18:23:32 +08:00
houseme
e22b24684f
chore: bump dependencies, add metrics support, remove DNS resolver ( #699 )
...
* upgrade version
* add metrics
* remove dns resolver
* add metrics counter for create bucket
* fix
* fix
* fix
2025-10-24 00:16:17 +08:00
weisd
1d069fd351
Improve the peer client ( #693 )
2025-10-23 17:21:55 +08:00
houseme
416d3ad5b7
Refactor: Add observability enable flag, improve comments, remove unused config params, and enhance run function error logging. ( #689 )
...
* improve code for dns log
* fix
* Improve comments, remove unused parameters in config.rs (opt), add observability enable flag, and enhance error logging in run function execution.
2025-10-23 13:59:57 +08:00
houseme
7dcf01f127
feat: adjust metrics push interval to 3 seconds ( #686 )
...
- Reduce metrics push frequency from default to 3s for better performance
- Optimize resource utilization during metrics collection
- Improve real-time monitoring responsiveness
Related to admin metrics optimization on fix/admin-metrics branch
2025-10-22 23:47:11 +08:00
weisd
e524a106c5
add make bucket error logs ( #683 )
...
* add make bucket error logs
2025-10-22 16:23:08 +08:00
weisd
cd1e244c68
Refactor: Introduce content checksums and improve multipart/object metadata handling ( #671 )
...
* feat: adapt to s3s typed etag support
* refactor: move replication struct to rustfs_filemeta, fix filemeta transition bug
* add head_object checksum, filter object metadata output
* fix multipart checksum
* fix multipart checksum
* add content md5,sha256 check
* fix test
* fix cargo
---------
Co-authored-by: overtrue <anzhengchao@gmail.com >
2025-10-20 23:46:13 +08:00
安正超
30e7f00b02
fix: update ahm integration test fixture ( #659 )
2025-10-17 09:13:56 +08:00
overtrue
58f8a8f46b
fix: correct HTTP range suffix handling
2025-10-16 21:39:21 +08:00
安正超
d447b3e426
feat: adapt to s3s typed etag support ( #653 )
...
* feat: adapt to s3s typed etag support
* refactor: streamline etag handling
2025-10-15 21:27:20 +08:00
安正超
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
Copilot
ad99019749
Add complete MNMD Docker deployment example with startup coordination and VolumeNotFound fix ( #642 )
...
* Initial plan
* Add MNMD Docker deployment example with 4 nodes x 4 drives
- Create docs/examples/mnmd/ directory structure
- Add docker-compose.yml with proper disk indexing (1..4)
- Add wait-and-start.sh for startup coordination
- Add README.md with usage instructions and alternatives
- Add CHECKLIST.md with step-by-step verification
- Fixes VolumeNotFound issue by using correct volume paths
- Implements health checks and startup ordering
- Uses service names for stable inter-node addressing
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* Add docs/examples README as index for deployment examples
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* Add automated test script for MNMD deployment
- Add test-deployment.sh with comprehensive validation
- Test container status, health, endpoints, connectivity
- Update README to reference test script
- Make script executable
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* improve code
* improve code
* improve dep crates `cargo shear --fix`
* upgrade aws-sdk-s3
---------
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-10-12 13:15:14 +08:00
houseme
aac9b1edb7
chore: improve event and docker-compose ,Improve the permissions of the endpoint health interface, upgrade otel from 0.30.0 to 0.31.0 ( #620 )
...
* 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 <1472352+overtrue@users.noreply.github.com >
* bufigx
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: overtrue <1472352+overtrue@users.noreply.github.com >
Co-authored-by: overtrue <anzhengchao@gmail.com >
* Improve lock (#596 )
* improve lock
Signed-off-by: Mu junxiang <1948535941@qq.com >
* feat(tests): add wait_for_object_absence helper and improve lifecycle test reliability
Signed-off-by: Mu junxiang <1948535941@qq.com >
* chore: remove dirty docs
Signed-off-by: Mu junxiang <1948535941@qq.com >
---------
Signed-off-by: Mu junxiang <1948535941@qq.com >
* feat(append): implement object append operations with state tracking (#599 )
* feat(append): implement object append operations with state tracking
Signed-off-by: junxiang Mu <1948535941@qq.com >
* chore: rebase
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: junxiang Mu <1948535941@qq.com >
* build(deps): upgrade s3s (#595 )
Co-authored-by: loverustfs <155562731+loverustfs@users.noreply.github.com >
* fix: validate mqtt broker
* improve code for `import`
* upgrade otel relation crates version
* fix:dep("jsonwebtoken") feature = 'rust_crypto'
* fix
* fix
* fix
* upgrade version
* improve code for ecfs
* chore: improve event and docker-compose ,Improve the permissions of the `endpoint` health interface
* fix
* fix
* fix
* fix
* improve code
* fix
---------
Signed-off-by: Mu junxiang <1948535941@qq.com >
Signed-off-by: junxiang Mu <1948535941@qq.com >
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: overtrue <1472352+overtrue@users.noreply.github.com >
Co-authored-by: overtrue <anzhengchao@gmail.com >
Co-authored-by: guojidan <63799833+guojidan@users.noreply.github.com >
Co-authored-by: Nugine <nugine@foxmail.com >
Co-authored-by: loverustfs <155562731+loverustfs@users.noreply.github.com >
2025-10-11 09:08:25 +08:00
安正超
007d9c0b21
fix: normalize ETag comparison in multipart upload and replication ( #627 )
...
- Normalize ETags by removing quotes before comparison in complete_multipart_upload
- Fix ETag comparison in replication logic to handle quoted ETags from API responses
- Fix ETag comparison in transition object logic
- Add unit tests for trim_etag function
This fixes the ETag mismatch error when uploading large files (5GB+) via multipart upload,
which was caused by PR #592 adding quotes to ETag responses while internal storage remains unquoted.
Fixes #625
2025-10-08 21:19:57 +08:00
weisd
7622b37f7b
add iam notification ( #604 )
...
move tonic service to rustfs
2025-09-30 17:32:23 +08:00
guojidan
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 <1948535941@qq.com >
* chore: rebase
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-27 20:06:26 -07:00
guojidan
be66cf8bd3
Improve lock ( #596 )
...
* improve lock
Signed-off-by: Mu junxiang <1948535941@qq.com >
* feat(tests): add wait_for_object_absence helper and improve lifecycle test reliability
Signed-off-by: Mu junxiang <1948535941@qq.com >
* chore: remove dirty docs
Signed-off-by: Mu junxiang <1948535941@qq.com >
---------
Signed-off-by: Mu junxiang <1948535941@qq.com >
2025-09-27 17:57:56 -07:00
Copilot
23b40d398f
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 <1472352+overtrue@users.noreply.github.com >
* bufigx
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: overtrue <1472352+overtrue@users.noreply.github.com >
Co-authored-by: overtrue <anzhengchao@gmail.com >
2025-09-27 10:03:05 +08:00
weisd
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
guojidan
9b029d18b2
feat(lock): enhance lock management with timeout and ownership tracking ( #589 )
...
- Add lock timeout support and track acquisition time in lock state
- Improve lock conflict handling with detailed error messages
- Optimize lock reuse when already held by same owner
- Refactor lock state to store owner info and timeout duration
- Update all lock operations to handle new state structure
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-25 20:21:53 -07:00
guojidan
12ecb36c6d
Fix collect ( #586 )
...
* fix: fix datausageinfo
Signed-off-by: junxiang Mu <1948535941@qq.com >
* feat(data-usage): implement local disk snapshot aggregation for data usage statistics
Signed-off-by: junxiang Mu <1948535941@qq.com >
* feat(scanner): improve data usage collection with local scan aggregation
Signed-off-by: junxiang Mu <1948535941@qq.com >
* refactor: improve object existence check and code style
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-24 02:48:23 -07:00
guojidan
ef0dbaaeb5
feat(encryption): add managed encryption support for SSE-S3 and SSE-KMS ( #583 )
...
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-24 02:09:04 -07:00
Copilot
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 <4829346+houseme@users.noreply.github.com >
* Changes before error encountered
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* Complete audit system with comprehensive observability and test coverage
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* 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] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2025-09-24 08:23:46 +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
a6c211f4ea
Feature/add dns logs ( #558 )
...
* add logs
* improve code for dns and logger
2025-09-18 12:00:43 +08:00
weisd
ae7e86d7ef
refactor: simplify initialization flow and modernize string formatting ( #548 )
2025-09-16 15:44:50 +08:00
Copilot
29c004d935
feat: enhance console separation with enterprise-grade security, monitoring, and advanced tower-http integration ( #513 )
...
* Initial plan
* feat: implement console service separation from endpoint
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* feat: add console separation documentation and tests
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* feat: enhance console separation with configurable CORS and improved Docker support
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* feat: implement enhanced console separation with security hardening and monitoring
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* refactor: implement console TLS following endpoint logic and improve configuration
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* add tower-http feature "timeout|limit"
* add dependencies crates `axum-server`
* refactor: reconstruct console server with enhanced tower-http features and environment variables
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* upgrade dep
* improve code for dns and console port `:9001`
* improve code
* fix
* docs: comprehensive improvement of console separation documentation and Docker deployment standards
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* fmt
* add logs
* improve code for Config handler
* remove logs
* fix
---------
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-09-13 14:48:14 +08:00
guojidan
62a01f3801
Performance: improve ( #514 )
...
* Performance: improve
Signed-off-by: junxiang Mu <1948535941@qq.com >
* remove dirty
Signed-off-by: junxiang Mu <1948535941@qq.com >
* fix some err
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-11 19:48:28 +08:00
guojidan
d4beb1cc0b
Fix lock ( #510 )
...
* Refactor: reimplement lock
Signed-off-by: junxiang Mu <1948535941@qq.com >
* Fix: fix test case failed
Signed-off-by: junxiang Mu <1948535941@qq.com >
* Improve: lock pref
Signed-off-by: junxiang Mu <1948535941@qq.com >
* fix(lock): Fix resource cleanup issue when batch lock acquisition fails
Ensure that the locks already acquired are properly released when batch lock acquisition fails to avoid memory leaks
Improve the lock protection mechanism to prevent double release issues
Add complete Apache license declarations to all files
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-11 12:10:35 +08:00
0xdx2
971e74281c
fix:Fix some errors tested in mint ( #507 )
...
* refactor: replace new_object_layer_fn with get_validated_store for bucket validation
* feat: add validation for object tagging limits and uniqueness
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* feat: add EntityTooSmall error for multipart uploads and update error handling
* feat: validate max_parts input range for S3 multipart uploads
* Update rustfs/src/storage/ecfs.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix: optimize tag key and value length validation checks
---------
Co-authored-by: damon <damonxue2@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-09-10 22:22:29 +08:00
Copilot
ca9a2b6ab9
feat: Implement enhanced DNS resolver with hickory-resolver, TLS support, and layered fallback for Kubernetes environments ( #505 )
...
* Initial plan
* feat: Implement layered DNS resolver with caching and validation
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* feat: Integrate DNS resolver into main application and fix formatting
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* feat: Implement enhanced DNS resolver with Moka cache and layered fallback
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* feat: Implement hickory-resolver with TLS support for enhanced DNS resolution
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
* upgrade
---------
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-09-10 21:16:33 +08:00
guojidan
14a8802ce7
Fix: fix collect usage data ( #500 )
...
Signed-off-by: junxiang Mu <1948535941@qq.com >
2025-09-09 18:39:51 +08:00
guojidan
9d5ed1acac
Feature/scanner performance optimization ( #498 )
...
* Refactor: reimplement scanner
Signed-off-by: RustFS Developer <dandan@rustfs.com >
* comment lock
Signed-off-by: junxiang Mu <1948535941@qq.com >
* remove dirty file
Signed-off-by: junxiang Mu <1948535941@qq.com >
* Fix: fix rebase
* fix(scanner): Improve error handling and logging
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: RustFS Developer <dandan@rustfs.com >
Signed-off-by: junxiang Mu <1948535941@qq.com >
Co-authored-by: RustFS Developer <dandan@rustfs.com >
2025-09-08 18:35:45 +08:00
0xdx2
44f3eb7244
Fix: add support for additional AWS S3 storage classes and validation logic ( #487 )
...
* Fix: add pagination fields to S3 response
* Fix: add support for additional AWS S3 storage classes and validation logic
* Fix: improve handling of optional fields in S3 response
---------
Co-authored-by: DamonXue <damonxue2@gmail.com >
2025-09-05 09:50:41 +08:00
weisd
01b2623f66
Fix/response ( #485 )
...
* fix:list_parts response
* fix:list_objects skip delete_marker
2025-09-03 17:52:31 +08:00
likewu
7462be983a
Feature up/ilm ( #470 )
...
* fix delete-marker expiration. add api_restore.
* time retry object upload
* lock file
* make fmt
* restore object
* serde-rs-xml -> quick-xml
* scanner_item prefix object_name
* object_path
* object_name
* fi version_purge_status
* old_dir None
Co-authored-by: houseme <housemecn@gmail.com >
2025-09-01 16:11:28 +08:00