Repository navigation
v0.57.5
filex v0.57.5
Self-hosted file manager - Go single binary + multi-framework frontend.
Download a binary below, or pull a Docker image:
docker pull ghcr.io/brf-tech/filex:slim-v0.57.5
docker pull ghcr.io/brf-tech/filex:full-v0.57.5What changed
Fixed
- An upload from Safari no longer stops for good after its first chunk
(GitHub #125, fixed by
@chengjie in PR #126). In
Safari a chunk sent straight from a file on disk could reach the server and
get its whole answer back, yet the request never finished, so the upload
waited on that chunk forever and its retries never ran. Each chunk is now
read into memory before it is sent (one chunk at a time, so the extra
memory is the chunk size per running upload, not the file size), and a
chunk whose bytes stop moving for two minutes is cut off and handed to the
retry path, which first asks the server how much arrived and sends only the
rest. A slow upload that keeps moving is never cut off, and the stall
message is in the explorer's own language. - A delete, move, rename or restore queued while its storage is being
scanned starts at once instead of waiting for the whole scan
(GitHub #127, reported by
@chengjie). On a local storage of tens of thousands of entries a folder
delete sat in the operations centre as "Delete · Queued" for the scan's
four or five minutes and ran two seconds after it ended. The scan holds the
storage's row gate for one directory at a time and takes it again a few
microseconds after letting go; the queue put the job back whenever the scan
held the gate and asked again only at its next round, so every try met the
scan. A job put back now tells the gate it is waiting: the scan finishes the
directory in hand and lets the job through before the next one, and the
queue is woken as soon as that directory is done. The gate gives the same
turn to every change that waits for it (a WebDAV or SFTP rename, a delete
in the explorer). A job that is not run within 10 seconds of saying it waits
(its queue busy with another storage's job) no longer holds the scan back.
While a job waits for the scan its row says so in the reader's language,
and the operations centre shows that instead of "Queued": the ops rows
carrywait_reason(storage_scan),wait_textandwaiting_since
(BACKEND.md). New metrics
filex_rowgate_waiting_changesandfilex_rowgate_lapsed_wants_total
(METRICS.md).
Verify: sha256sum -c checksums.txt
- Documentation - https://docs.filex.sh
- Report a bug - https://github.com/BRF-Tech/filex/issues
- Full changelog - https://github.com/BRF-Tech/filex/blob/main/CHANGELOG.md
- Every release - https://github.com/BRF-Tech/filex/releases