No description
Find a file
Henrique Dias 0b925cbca9
fix: unblock stalled and frozen uploads
A TUS PATCH rejected before its body was read left the client still streaming
a chunk. net/http gives up draining an unread request body after 256KiB and
then closes the connection, so the status we replied with was lost and the
browser saw a bare transport error instead. The client could not tell a
conflict from a network fault, retried blindly, and the upload stalled after
the first chunk — while curl, which reads the response as it writes, still
reported the status and appeared to work. Drain what is left of a rejected
chunk so the answer arrives on a connection that stays usable. The explicit
r.Body.Close() had to go with it: it ran before the drain, and the server
closes the request body itself once the handler returns.

Pressing Upload awaited a recursive listing of the whole destination subtree
before a single byte was sent, with no sign that anything was happening. On a
large destination that reads as a dead button, and the walk kept running after
the client gave up, then reported the failed write as a 500. A flat upload can
only collide with a direct child of the destination, so walk recursively only
for folder uploads, stop the walk once the request is done, and show the action
as busy while the destination is checked.

Along the way: a failed upload was credited as fully sent, so the progress bar
reported 100% when nothing had been written; the progress timer was recreated
without clearing the previous one; and the chunk size field threw on a value
with no unit and raced its own debounce on submit, so it appeared to refuse
every change.

Fixes #6006
Refs #5987
2026-07-27 16:28:17 +02:00
.claude docs: update CLAUDE.md 2026-07-26 09:58:40 +02:00
.github chore(deps): update actions/upload-pages-artifact action to v5 (#5913) 2026-04-18 07:48:08 +02:00
auth fix(users): make the provisioned scope check atomic with the save 2026-07-25 22:15:27 +02:00
branding docs: import logo and banner (#5514) 2025-11-11 18:32:41 +01:00
cmd fix: process --FollowExternalSymlinks 2026-07-25 07:25:26 +02:00
diskcache chore: add govet, gocritic and revive 2025-11-20 07:56:56 +01:00
docker fix: add tokenExpirationTime to config init and troubleshoot docs (#5546) 2025-11-17 08:57:02 +01:00
errors fix: check download permission when sharing permission is enabled (#5875) 2026-04-04 09:11:21 +02:00
files fix(http): canonicalize paths before checking access rules (#6045) 2026-07-26 10:00:18 +02:00
fileutils fix: return error instead of panicking on an unreadable directory during copy (#6020) 2026-07-18 07:21:44 +02:00
frontend fix: unblock stalled and frozen uploads 2026-07-27 16:28:17 +02:00
http fix: unblock stalled and frozen uploads 2026-07-27 16:28:17 +02:00
img chore: remove 'nolint' comments 2025-11-15 09:01:21 +01:00
rules fix(http): canonicalize paths before checking access rules (#6045) 2026-07-26 10:00:18 +02:00
runner chore: remove 'nolint' comments 2025-11-15 09:01:21 +01:00
search feat: support streaming response for search results (#5630) 2025-12-28 21:57:25 +01:00
settings fix(http): canonicalize paths before checking access rules (#6045) 2026-07-26 10:00:18 +02:00
share fix: match admin share paths by owner scope (#5992) 2026-06-27 07:43:22 +02:00
storage test(storage): cover case-insensitive GetByScope matching 2026-07-25 08:16:18 +02:00
users test(users): cover concurrent provisioning into one scope 2026-07-25 22:15:35 +02:00
version fix: ignore version.go 2026-02-14 07:35:34 +01:00
www docs: fix typo 2026-07-21 19:18:51 +02:00
.dockerignore build: publish docs to cloudflare pages (#5230) 2025-06-28 22:20:26 +02:00
.gitignore chore: remove unused tests 2025-11-13 14:21:11 +01:00
.golangci.yml chore: add govet, gocritic and revive 2025-11-20 07:56:56 +01:00
.goreleaser.yml chore: add openbsd, remove windows arm (#5695) 2026-01-18 08:59:57 +01:00
.versionrc chore: replace release-please with commit-and-tag-version 2025-11-13 14:03:41 +01:00
CHANGELOG.md chore(release): 2.63.21 2026-07-26 10:02:11 +02:00
CODE-OF-CONDUCT.md docs: improvements to building and docs (#5234) 2025-06-29 09:28:39 +02:00
compose.yaml fix: correct environment variable in compose.yaml (#5910) 2026-04-18 07:48:43 +02:00
CONTRIBUTING.md docs: add CLI usage and integrate generation in release 2025-11-16 10:14:59 +01:00
Dockerfile Revert "chore(deps): update all non-major dependencies (#5946)" 2026-07-26 08:00:07 +02:00
Dockerfile.s6 Revert "chore(deps): update all non-major dependencies (#5946)" 2026-07-26 08:00:07 +02:00
go.mod chore: update Go deps 2026-07-26 08:01:32 +02:00
go.sum chore: update Go deps 2026-07-26 08:01:32 +02:00
LICENSE docs: add link to contributing and license in readme 2025-06-29 10:13:01 +02:00
main.go fix: exit 0 when gracefully shutting down (#5555) 2025-11-16 14:13:21 +01:00
README.md docs: remove go report 2026-07-25 08:00:00 +02:00
renovate.json chore: fix renovate.json order 2026-07-27 07:42:09 +02:00
SECURITY.md docs: update SECURITY.md and add CLAUDE.md 2026-07-25 08:42:52 +02:00
Taskfile.yml chore: fix Taskfile commit when change 2025-11-17 10:02:29 +01:00
transifex.yml ci: update transifex settings 2026-03-14 07:57:18 +01:00

Build Version

File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview and edit your files. It is a create-your-own-cloud-kind of software where you can just install it on your server, direct it to a path and access your files through a nice web interface.

Documentation

Documentation on how to install, configure, and contribute to this project is hosted at filebrowser.org.

Project Status

This project is a finished product which fulfills its goal: be a single binary web File Browser which can be run by anyone anywhere. That means that File Browser is currently on maintenance-only mode. Therefore, please note the following:

  • It can take a while until someone gets back to you. Please be patient.
  • Issues are meant to track bugs. Unrelated issues will be converted into discussions.
  • The priority is triaging issues, addressing security issues and reviewing pull requests meant to solve bugs.
  • No new features are planned. Pull requests for new features will not be reviewed.

Please read @hacdias' personal reflection on the project status.

Contributing

Contributions are always welcome. To start contributing to this project, read our guidelines first.

License

Apache License 2.0 © File Browser Contributors