diff --git a/README.md b/README.md index 3cf6898..b8fbfca 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ Admin user can create invite links with optional limits and password protection. - **Manage Links:** Search/sort, enable/disable, delete, edit name/expiry. - **Passwords (optional):** Protect invite links with a password. - **Albums:** Upload into a specific folder (auto-create supported). Preserves client-side folder structure on upload. -- **Duplicate Prevention:** Local SHA‑1 cache prevents re-uploading the same file. - **Telegram Notifications (optional):** Get notified via Telegram when upload batches are complete. - **Progress Queue:** WebSocket updates; see upload progress in real-time. - **Chunked Uploads (optional):** Large-file support with configurable chunk size. @@ -130,7 +129,7 @@ Then message the bot you just created "/start" so that it's able to interact wit - Chunked uploads are enabled by default. Uses setting `CHUNKED_UPLOADS_ENABLED=true`. - Configure chunk size with `CHUNK_SIZE_MB` (default: `50`). The client only uses chunked mode for files larger than this. -- Intended to bypass upstream proxy limits (e.g., 100MB) while preserving duplicate checks, EXIF timestamps, album add, and per‑item progress via WebSocket. +- Intended to bypass upstream proxy limits (e.g., 100MB) while preserving EXIF timestamps, album add, and per‑item progress via WebSocket. ## Development @@ -139,7 +138,6 @@ Then message the bot you just created "/start" so that it's able to interact wit - **Frontend:** static HTML/JS (Tailwind). Drag & drop or "Choose files", queue UI with progress and status chips. - **Backend:** FastAPI + Uvicorn. - Saves uploaded files to the local filesystem. - - Computes SHA‑1 and checks a local SQLite cache (`state.db`) to prevent duplicates. - WebSocket `/ws` pushes per‑item progress to the current browser session only. - **Persistence:** A local SQLite database (`state.db`) prevents re‑uploads across sessions. Uploaded files are stored in `/data/uploads`. @@ -169,7 +167,6 @@ python main.py ### How it works 1. **Queue** - Files selected in the browser are queued; each gets a client-side ID. -2. **De-dupe (local)** - Server computes **SHA‑1** and checks `state.db`. If seen, marks as **duplicate**. 3. **Save** - The file is saved to the local filesystem under `./data/uploads`. 4. **Album** - If an album is specified via an invite link, or a folder name is provided on the public page, the file is saved into a corresponding subdirectory. Client-side folder structure is also preserved. 5. **Progress** - Backend streams progress via WebSocket to the same session.