rustfs
rustfs copied to clipboard
fix: ensure version_id is returned in S3 response headers
Type of Change
- [ ] New Feature
- [x] Bug Fix
- [ ] Documentation
- [ ] Performance Improvement
- [x] Test/CI
- [ ] Refactor
- [ ] Other:
Related Issues
- #1066
Summary of Changes
- Ensure S3 responses return
version_idfor PutObject, CopyObject, and CompleteMultipartUpload when versioning is enabled, fixing Veeam VBR compatibility. - Added a comprehensive regression test suite (
version_id_regression_test.rs) covering versioned and non-versioned buckets, multipart uploads, copy flows, and a Veeam-like backup workflow to guard against regressions.
Checklist
- [ ] I have read and followed the CONTRIBUTING.md guidelines
- [ ] Passed
make pre-commit - [x] Added/updated necessary tests
- [ ] Documentation updated (if needed)
- [ ] CI/CD passed (if applicable)
Impact
- [ ] Breaking change (compatibility)
- [ ] Requires doc/config/deployment update
- [x] Other impact: Improves S3 compatibility by returning version IDs; expected to be backward-compatible.
Additional Notes
- Regression tests:
cargo test -p e2e_test --lib version_id_regression_test -- --test-threads=1 - Please run full pre-commit (
make pre-commit) before merge.