#http #serve #directory #routes #command #single #folder

app serve-directory

用一条命令提供目录服务!

1 个不稳定版本

0.1.0 2021 年 10 月 9 日

#40#serve

Download history 22/week @ 2024-03-08 80/week @ 2024-03-15 5/week @ 2024-03-22 34/week @ 2024-03-29 11/week @ 2024-04-05 2/week @ 2024-04-12 14/week @ 2024-04-19 2/week @ 2024-04-26 7/week @ 2024-05-10 14/week @ 2024-05-31 17/week @ 2024-06-07 26/week @ 2024-06-14 2/week @ 2024-06-21

59 每月下载量

MIT 协议

16KB
122

pipeline status

serve-directory

serve-directory 是一个简单的命令行实用程序,用于从命令行提供静态文件。在一般情况下,我们确实意味着 简单。要启动一个服务器,提供当前目录及其子目录的内容,只需运行可执行文件而不带参数。

$ serve-directory

文件通过它们相对于目标文件夹的相对位置进行访问。考虑以下(简化的)Rust 项目结构

Project Structure:          Route:
 .                          /
 ├─ src/                    /src
 │  ├─ main.rs              /src/main.rs
 │  └─ stuff.rs             /src/stuff.rs
 ├─ target/                 /target
 │  └─ debug/               /target/debug
 │     └─ app.exe           /target/debug/app.exe
 └─ README.md               /README.md

如您所见,文件结构和路由之间的相关性相当自然。

我为什么要关心呢?

有时,配置网络文件夹的工作量比在机器之间传递几个文件要大得多,尤其是如果您正在将文件移动到或从无头系统。虽然您可以使用类似 SFTP 的工具,但 serve-directory 提供了一种在 Web 浏览器中浏览文件系统的良好图形界面,这应该对新用户来说不那么令人生畏。它还允许下载多个客户端的文件,而无需多次通过 SSH 登录。

它也很简单,不需要任何额外的设置(假设用户已编译了可执行文件)。大多数用户已经在他们的机器上安装了浏览器。而且,如果用户没有,他们可以使用 curlwget 通过 HTTP 下载文件。

虽然很明显需要一个简单且易于使用的 HTTP 文件服务器,但为什么您要使用 serve-directory 而不是 NodeJS 中的更成熟的选项(如 serve 包)呢?我必须承认,在许多情况下,serve 可能更适合您的需求。然而,由于 serve-directory 是用 Rust 编写的,并且是本地编译的,因此它可以作为一个单独的可执行文件使用和分发,而无需运行时。

安装和使用

crates.io 安装此应用程序最新版本的推荐方法是使用 cargo

$ cargo install serve-directory

或者,您可以使用 cargo 从源代码构建它,然后将应用程序添加到您的 PATH

$ cargo build --release
$ cp ./target/release/serve-directory ~/bin/serve-directory

应用程序的不同功能通过命令行参数进行控制。您可以使用 -h--help 标志查看完整的参数列表。

$ serve-directory --help

通常情况下,只需将应用程序指向所需目录。程序将尝试确定您的当前IP地址并将其绑定到该接口。要更改应用程序绑定的端口,请使用-p标志。例如,此命令将在端口80上为~/www目录提供内容。

请注意,在实际操作中,您可能需要以root权限运行程序才能访问较低编号的端口。只需在命令开头添加sudo即可。

$ serve-directory -p 80 ~/www

致谢

特别感谢serve项目为本工具提供灵感!还要感谢Material-UI在目录网页上使用的图标!

本项目的实现得益于以下优秀的库

所有者
build_html 约瑟夫·斯库巴尔
环境记录器 Rust项目开发者
静态懒加载 Rust库团队
本地IP地址 王易康
日志 Rust项目开发者
结构优化 纪尧姆·皮诺
tokio tokio贡献者
战斧 肖恩·麦克阿瑟

当然,还有Rust语言

许可证

本项目受MIT许可证的许可。请随意使用和混合您想要的。

版权(C)2020-21 约瑟夫·斯库巴尔

依赖关系

~13–25MB
~336K SLoC