• v0.5.0 b4e2e15936

    MyFSIO v0.5.0 Beta Pre-Release

    kqjy released this 2026-04-27 07:00:27 +00:00 | 57 commits to main since this release

    Full 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 the python/ 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, ListVersions pagination, DeleteObject(VersionId='null') hard-deletes correctly.
    • DeleteObjects parallelized; per-op rate limits restored.
    • Multipart: race-free ?partNumber=N, zero-length-part response, peer-body verification.
    • CopyObject now 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-Host trust.

    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-cred backs up iam.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_HOST to HOST. Please refer to the documentation for more details.
    Downloads