-
MyFSIO v0.5.0 Beta Pre-Release
released this
2026-04-27 07:00:27 +00:00 | 57 commits to main since this releaseFull migration and transition from Python to Rust update.
Core change
- One Rust binary, no more Python runtime.
- Tokio + Axum 0.8, async I/O end-to-end.
- Workspace crates:
myfsio-common,myfsio-auth,myfsio-crypto,myfsio-storage,myfsio-xml,myfsio-server. - Rust-only Dockerfile;
run.py, gunicorn/waitress,requirements.txt, and thepython/tree are gone.
UI changes
- Same URLs, same templates — sessions and bookmarks keep working.
- Faster page loads; bucket listing optimized for 10K–100K objects.
- New Cluster page for peer-site management.
- New object search in the bucket browser.
- Static website hosting: proper 404 + error handling.
- Folder selection now exposes the delete button.
- More-actions dropdown uses Popper (no row-select bug, no overflow).
- GC and integrity scan tables auto-refresh and respect
DISPLAY_TIMEZONE. - Internal metadata keys hidden in object panels.
- CSRF accepted in JSON bodies; login token edge cases fixed.
S3 API
- SigV4 / SHA256 hot paths fixed and hardened.
- Versioning conformance: live
VersionId, delete markers,Suspended,ListVersionspagination,DeleteObject(VersionId='null')hard-deletes correctly. DeleteObjectsparallelized; per-op rate limits restored.- Multipart: race-free
?partNumber=N, zero-length-part response, peer-body verification. CopyObjectnow streams.- Range GET on SSE-encrypted objects (partial decryption).
- Per-bucket CORS, canned ACL/SSE rejection, checksum attrs, XML round-trip.
- Path-safety and error-code conformance hardened.
- Presigned URLs: key/user status enforced, no
X-Forwarded-Hosttrust.
Cluster / replication / integrity
- Real auto-heal: peer-fetch corrupted objects with verified swap, poison-fallback if no peer, returns
422 ObjectCorrupted. - Bi-directional site sync (
SITE_SYNC_ENABLED). - Peer-site editor rejects empty endpoints; peer 403 bodies surfaced in UI.
- Integrity scanner uses intra-bucket cursor tracking for progressive coverage.
IAM
- Admin definition aligned across runtime, UI, and JS.
- Legacy full-access policies auto-migrate (gated on
iam:*to avoid promoting bucket-admin users). --reset-credbacks upiam.json(keeps 5 newest).
Upgrade
- Existing
data/directories work unchanged. - Replace your Python entrypoint with
myfsio-server serve. - Build:
cargo build --release -p myfsio-server --bin myfsio-server.
Notes (important):
- Some environmental variable will need changing, such as
APP_HOSTtoHOST. Please refer to the documentation for more details.
Downloads