[GH-ISSUE #452] support/integrate tus upload #245

Closed
opened 2026-04-08 16:51:27 +03:00 by zhus · 3 comments
Owner

Originally created by @LeiYangGH on GitHub (Sep 7, 2024).
Original GitHub issue: https://github.com/sigoden/dufs/issues/452

integrate tus upload

dufs is easy to deploy and use, thanks for such great product!
meanwhile, when I first deployed it and reverse proxied using nginx and tried to upload a 2M size file, it failed with error like 'entity too large'.
I changed the nginx config extending the size limit then can upload now.
I searched around the issues and found many complain about resumable uploads or big file uploads, or feature requests about avoid uploading same file, while almost all not solved and just explained some reasons.
I went over the source code as well as explainations in some jiras and am sure the upload is streaming, maybe the default chunk size is more than 2M? I didn't find any configuration on chunk size in the readme.

Implement Suggestion

I have experience of using another open source upload component called tus, which solves all the issues metioned above, and the official server also written in go. It even has public protocol dedicated to solve this problem.
So suggest integrated tus at protocal level(for example, copy some source code from tusd, or at application level, add option to support listening tusd upload events at some endpoint.

I have little experience with go programming, and not know the effort/possibility, could you consider it, thanks!

Originally created by @LeiYangGH on GitHub (Sep 7, 2024). Original GitHub issue: https://github.com/sigoden/dufs/issues/452 ## integrate tus upload dufs is easy to deploy and use, thanks for such great product! meanwhile, when I first deployed it and reverse proxied using nginx and tried to upload a 2M size file, it failed with error like 'entity too large'. I changed the nginx config extending the size limit then can upload now. I searched around the issues and found many complain about resumable uploads or big file uploads, or feature requests about avoid uploading same file, while almost all not solved and just explained some reasons. I went over the source code as well as explainations in some jiras and am sure the upload is streaming, maybe the default chunk size is more than 2M? I didn't find any configuration on chunk size in the readme. ## Implement Suggestion I have experience of using another open source upload component called [tus](https://tus.io/), which solves all the issues metioned above, and the official server also written in go. It even has public [protocol](https://tus.io/protocols/resumable-upload) dedicated to solve this problem. So suggest integrated tus at protocal level(for example, copy some source code from [tusd](https://github.com/tus/tusd), or at application level, add option to support listening tusd upload events at some endpoint. I have little experience with go programming, and not know the effort/possibility, could you consider it, thanks!
zhus closed this issue 2026-04-08 16:51:27 +03:00
Author
Owner

@sigoden commented on GitHub (Sep 7, 2024):

We will not support this feature.

dufs already supports resumable upload. tus does not bring anything new,

If you like tus so much, why not create your own tool similar to dufs but based on the tus protocol?

<!-- gh-comment-id:2335461702 --> @sigoden commented on GitHub (Sep 7, 2024): We will not support this feature. dufs already supports resumable upload. `tus` does not bring anything new, If you like `tus` so much, why not create your own tool similar to `dufs` but based on the `tus` protocol?
Author
Owner

@LeiYangGH commented on GitHub (Sep 8, 2024):

because that tus doesn't have web page and access control built in.
i like both on two aspects. but bringing them together would be best.

<!-- gh-comment-id:2336482726 --> @LeiYangGH commented on GitHub (Sep 8, 2024): because that tus doesn't have web page and access control built in. i like both on two aspects. but bringing them together would be best.
Author
Owner

@wrenix commented on GitHub (Feb 10, 2026):

That is sad, tus as an well defined protocol is implemented in several client libraries.

<!-- gh-comment-id:3874406977 --> @wrenix commented on GitHub (Feb 10, 2026): That is sad, tus as an well defined protocol is implemented in several client libraries.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sigoden/dufs#245