Là một công cụ cho lập trình viên, sigoden/dufs đã đạt 10.6k sao trên GitHub, ngôn ngữ Rust. A file server that supports static serving, uploading, searching, accessing control, webdav...
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Dufs is a distinctive utility file server that supports static serving, uploading, searching, accessing control, webdav...
Features
Serve static files
Download folder as zip file
Upload files and folders (Drag & Drop)
Create/Edit/Search files
Resumable/partial uploads/downloads
Access control
Support https
Support webdav
Easy to use with curl
Install
With cargo
cargo install dufs
With docker
docker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data -A
With Homebrew
brew install dufs
Binaries on macOS, Linux, Windows
Download from Github Releases, unzip and add dufs to your $PATH.
CLI
Dufs is a distinctive utility file server - https://github.com/sigoden/dufs
Usage: dufs [OPTIONS] [serve-path]
Arguments:
[serve-path] Specific path to serve [default: .]
Options:
-c, --config <file> Specify configuration file
-b, --bind <addrs> Specify bind address or unix socket
-p, --port <port> Specify port to listen on [default: 5000]
--path-prefix <path> Specify a path prefix
--hidden <value> Hide paths from directory listings, e.g. tmp,*.log,*.lock
-a, --auth <rules> Add auth roles, e.g. user:pass@/dir1:rw,/dir2
-A, --allow-all Allow all operations
--allow-upload Allow upload files/folders
--allow-delete Allow delete files/folders
--allow-search Allow search files/folders
--allow-symlink Allow symlink to files/folders outside root directory
--allow-archive Allow download folders as archive file
--allow-hash Allow ?hash query to get file sha256 hash
--enable-cors Enable CORS, sets `Access-Control-Allow-Origin: *`
--render-index Serve index.html when requesting a directory, returns 404 if not found index.html
--render-try-index Serve index.html when requesting a directory, returns directory listing if not found index.html
--render-spa Serve SPA(Single Page Application)
--assets <path> Set the path to the assets directory for overriding the built-in assets
--log-format <format> Customize http log format
--log-file <file> Specify the file to save logs to, other than stdout/stderr
--compress <level> Set zip compress level [default: low] [possible values: none, low, medium, high]
--completions <shell> Print shell completion script for <shell> [possible values: bash, elvish, fish, powershell, zsh]
--tls-cert <path> Path to an SSL/TLS certificate to serve with HTTPS
--tls-key <path> Path to the SSL/TLS certificate's private key
-h, --help Print help
-V, --version Print version
Examples
Serve current working directory in read-only mode
dufs
Allow all operations like upload/delete/search/create/edit...
curl http://127.0.0.1:5000?q=Dockerfile # search for files, similar to `find -name Dockerfile`
curl http://127.0.0.1:5000?simple # output names only, similar to `ls -1`
curl http://127.0.0.1:5000?json # output paths in json format
With authorization (Both basic or digest auth works)
Dufs supports account based access control. You can control who can do what on which path with --auth/-a.
dufs -a admin:admin@/:rw -a guest:guest@/
dufs -a user:pass@/:rw,/dir1 -a @/
Use @ to separate the account and paths. No account means anonymous user.
Use : to separate the username and password of the account.
Use , to separate paths.
Use path suffix :rw/:ro set permissions: read-write/read-only. :ro can be omitted.
-a admin:admin@/:rw: admin has complete permissions for all paths.
-a guest:guest@/: guest has read-only permissions for all paths.
-a user:pass@/:rw,/dir1: user has read-write permissions for /*, has read-only permissions for /dir1/*.
-a @/: All paths is publicly accessible, everyone can view/download it.
Auth permissions are restricted by dufs global permissions. If dufs does not enable upload permissions via --allow-upload, then the account will not have upload permissions even if it is granted read-write(:rw) permissions.
Dufs allows users to customize the UI with your own assets.
dufs --assets my-assets-dir/
If you only need to make slight adjustments to the current UI, you copy dufs's assets directory and modify it accordingly. The current UI doesn't use any frameworks, just plain HTML/JS/CSS. As long as you have some basic knowledge of web development, it shouldn't be difficult to modify.
Your assets folder must contains a index.html file.
index.html can use the following placeholder variables to retrieve internal data.
sigoden/dufs có 10.6k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/sigoden/dufs. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
sigoden/dufs có những chủ đề gì?
GitHub topics của sigoden/dufs: "cloud-disk", "command-line", "file-sharing", "file-upload-server", "rust", "static-server", "webdav", "webdav-server". TopGit xếp repo vào nhóm Developer Tools.
sigoden/dufs còn đang phát triển không?
Commit gần nhất trên sigoden/dufs là 1 tháng trước (theo timestamp GitHub). Repo có 576 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
sigoden/dufs là gì?
sigoden/dufs (sigoden/dufs) là dự án Rust trên GitHub. Theo mô tả gốc: A file server that supports static serving, uploading, searching, accessing control, webdav...
sigoden/dufs so với các dự án Developer Tools khác thế nào?
sigoden/dufs được TopGit xếp vào nhóm Developer Tools, với 10.6k sao GitHub và viết bằng Rust. Xem trang chủ đề Developer Tools trên TopGit để so sánh với các dự án tương tự theo số sao và mức độ hoạt động.
sigoden/dufs viết bằng ngôn ngữ gì?
sigoden/dufs chủ yếu viết bằng Rust. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Vì sao sigoden/dufs được xếp vào nhóm Developer Tools?
TopGit xếp sigoden/dufs vào nhóm Developer Tools dựa trên GitHub topics và mô tả của repo (gắn thẻ: "cloud-disk", "command-line", "file-sharing"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.
Đọc đầy đủ README ở tab phía trên.
dufs có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về dufs.