From 992d9eccd991eb1626636b25d3e12b7b2cb6c570 Mon Sep 17 00:00:00 2001 From: kqjy Date: Mon, 22 Dec 2025 11:09:29 +0800 Subject: [PATCH] Update docs --- README.md | 2 +- docs.md | 43 +++++++++++++++++++++++++++++++++++++++++++ templates/docs.html | 9 +++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f6519d..a7ae1f4 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ MyFSIO is a batteries-included, Flask-based recreation of Amazon S3 and IAM work - **IAM + access keys:** Users, access keys, key rotation, and bucket-scoped actions (`list/read/write/delete/policy`) now live in `data/.myfsio.sys/config/iam.json` and are editable from the IAM dashboard. - **Bucket policies + hot reload:** `data/.myfsio.sys/config/bucket_policies.json` uses AWS' policy grammar (Version `2012-10-17`) with a built-in watcher, so editing the JSON file applies immediately. The UI also ships Public/Private/Custom presets for faster edits. - **Presigned URLs everywhere:** Signature Version 4 presigned URLs respect IAM + bucket policies and replace the now-removed "share link" feature for public access scenarios. -- **Modern UI:** Responsive tables, quick filters, preview sidebar, object-level delete buttons, a presign modal, and an inline JSON policy editor that respects dark mode keep bucket management friendly. +- **Modern UI:** Responsive tables, quick filters, preview sidebar, object-level delete buttons, a presign modal, and an inline JSON policy editor that respects dark mode keep bucket management friendly. The object browser supports folder navigation, infinite scroll pagination, bulk operations, and automatic retry on load failures. - **Tests & health:** `/healthz` for smoke checks and `pytest` coverage for IAM, CRUD, presign, and policy flows. ## Architecture at a Glance diff --git a/docs.md b/docs.md index 2f9c3d7..6515b6c 100644 --- a/docs.md +++ b/docs.md @@ -341,6 +341,7 @@ Before upgrading across major versions, verify compatibility: | From Version | To Version | Breaking Changes | Migration Required | |--------------|------------|------------------|-------------------| | 0.1.x | 0.2.x | None expected | No | +| 0.1.6 | 0.1.7 | None | No | | < 0.1.0 | >= 0.1.0 | New IAM config format | Yes - run migration script | **Automatic compatibility detection:** @@ -634,6 +635,48 @@ curl -X PUT http://127.0.0.1:5000/bucket-policy/test \ The UI will reflect this change as soon as the request completes thanks to the hot reload. +### UI Object Browser + +The bucket detail page includes a powerful object browser with the following features: + +#### Folder Navigation + +Objects with forward slashes (`/`) in their keys are displayed as a folder hierarchy. Click a folder row to navigate into it. A breadcrumb navigation bar shows your current path and allows quick navigation back to parent folders or the root. + +#### Pagination & Infinite Scroll + +- Objects load in configurable batches (50, 100, 150, 200, or 250 per page) +- Scroll to the bottom to automatically load more objects (infinite scroll) +- A **Load more** button is available as a fallback for touch devices or when infinite scroll doesn't trigger +- The footer shows the current load status (e.g., "Showing 100 of 500 objects") + +#### Bulk Operations + +- Select multiple objects using checkboxes +- **Bulk Delete**: Delete multiple objects at once +- **Bulk Download**: Download selected objects as individual files + +#### Search & Filter + +Use the search box to filter objects by name in real-time. The filter applies to the currently loaded objects. + +#### Error Handling + +If object loading fails (e.g., network error), a friendly error message is displayed with a **Retry** button to attempt loading again. + +#### Object Preview + +Click any object row to view its details in the preview sidebar: +- File size and last modified date +- ETag (content hash) +- Custom metadata (if present) +- Download and presign (share link) buttons +- Version history (when versioning is enabled) + +#### Drag & Drop Upload + +Drag files directly onto the objects table to upload them to the current bucket and folder path. + ## 6. Presigned URLs - Trigger from the UI using the **Presign** button after selecting an object. diff --git a/templates/docs.html b/templates/docs.html index f812d40..4840d82 100644 --- a/templates/docs.html +++ b/templates/docs.html @@ -255,6 +255,15 @@ sudo journalctl -u myfsio -f # View logs
  • Progress rows highlight retries, throughput, and completion even if you close the modal.
  • +
    +

    Object browser

    + +

    Object details