#服务器 #http #目录 #webdav #cargo-install #github

app https

请托管这些事物 - 一个快速简单的文件夹托管基本 http 服务器(现在仅支持 git:cargo install --git https://github.com/thecoshman/http)

35 个稳定版本

使用旧的 Rust 2015

2.0.2 2024年6月3日
1.13.2 2023年8月30日
1.13.0 2023年7月15日
1.12.6 2023年3月21日
0.2.0 2016年12月21日

#18HTTP 服务器

Download history 13/week @ 2024-04-29 1/week @ 2024-05-06 15/week @ 2024-05-13 26/week @ 2024-05-20 170/week @ 2024-05-27 346/week @ 2024-06-03 78/week @ 2024-06-10 32/week @ 2024-06-17 26/week @ 2024-06-24 107/week @ 2024-07-01 10/week @ 2024-07-08 13/week @ 2024-07-15 4/week @ 2024-07-22 277/week @ 2024-07-29 14/week @ 2024-08-05 8/week @ 2024-08-12

304 每月下载次数

MIT 许可证

10KB

http Travis 构建状态 AppVeyor 构建状态 许可证 Crates.io 版本

请托管这些事物 - 一个快速简单的 HTTP 服务器用于托管文件夹(现在仅支持 git:cargo install --git https://github.com/thecoshman/http)

精选特性

查看 手册页 以获取完整列表。

  • 默认跟随符号链接(可通过 -s 选项禁用)
  • 为目录生成索引
  • 合理的默认值(如托管目录 (.) 和端口(从 8000-9999 范围内的第一个可用端口))
  • 为提供的文件设置正确的 MIME 类型
  • 处理请求方法:OPTIONS, GET, PUT, DELETE, HEAD 和 TRACE("写入" 方法默认关闭,通过 -w 开关启用)
  • 正确处理百分号编码的 URL(如 асдф fdsa
  • 良好的符号链接处理,兼容 Windows
  • 目录索引中的大量信息
  • 从目录中提供索引文件(如 index.{html,htm,shtml}),可通过 - 开关禁用
  • 拖放上传文件(指定 -
  • 智能编码生成的和来自文件系统的响应(可通过-e开关禁用)
  • 支持全范围头信息
  • 可选自动生成TLS证书的托管
  • 任意嵌套的用户名/密码认证
  • 每个请求的带宽限制
  • 可覆盖的MIME类型,有合理的猜测
  • WebDAV/RFC2518 支持,已与Linux davfs2 辅助工具测试,支持Windows网络文件系统(开箱即用),以及Total Commander WebDAV 插件
  • RFSAPI 支持(格式规范)(可通过D'Oh从命令行访问)

手册页

安装

从 Cargo

如果你已经安装了 cargo(你是 Rust 开发者),你只需要做

# unix:
RUSTC_BOOTSTRAP=1 cargo install --git https://github.com/thecoshman/http
rem windows:
set RUSTC_BOOTSTRAP=1
cargo install --git https://github.com/thecoshman/http

(crates.io 的 https曾经 是 http,但现在 不可发布)。类似地,当通过 cargo install 构建时,cargo 明确忽略 允许构建包的配置,因此需要手动设置 RUSTC_BOOTSTRAP=1,你也可以设置

cargo install-update-config -e RUSTC_BOOTSTRAP=1 https

以使用 cargo-update

这将安装 httphttplz(相同,如果冲突则禁用其中一个)到所有其他二进制文件的文件夹中。

从 Debian 仓库

/etc/apt/sources.list 或等效文件中的以下行

deb [signed-by=/etc/apt/keyrings/nabijaczleweli.asc] https://debian.nabijaczleweli.xyz sid main

使用 我的 PGP 密钥(两个 URL 可以互换使用)

sudo wget -O/etc/apt/keyrings/nabijaczleweli.asc https://debian.nabijaczleweli.xyz/nabijaczleweli.gpg.key
sudo wget -O/etc/apt/keyrings/nabijaczleweli.asc https://nabijaczleweli.xyz/pgp.txt

(你可能需要在 apt <2.4.0 (<=bullseye)的情况下手动创建 /etc/apt/keyrings)。

然后是通常的

sudo apt update
sudo apt install http

将在 amd64 和 i386 上工作。

有关更多信息,请参阅 仓库 README

在 Arch Linux 上

可以从 社区仓库 获取 httplz

pacman -S httplz

从安装程序

如果你不是 Rust 开发者,但你有类似 sh 的 shell,你可以使用安装程序(适用于 Windows 和 Linux)

curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
# or, if you like taking precautions
sh -c "$(curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh)"

你可以通过设置环境变量 PREFIX 来更改安装目录(默认 - /usr/bin

PREFIX=$HOME/bin curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
# Windows:
set PREFIX=D:\Akces
curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh

如果你使用的是基于 Debian 的 amd64 机器,你也可以从 最新发布页面 获取 .deb 包。

如果你使用的是 Windows 并且更喜欢更直观的安装(或者你没有 shell),你可以从 最新发布页面的 Windows 安装程序下载。 (注意:你可以在安装程序命令行中添加 /D INSTALLDIR 来更改安装目录。)

目标

想法是创建一个可以编译成简单二进制文件的程序,可以通过 Linux CLI 快速将当前目录通过 HTTP 服务器提供服务。所有设置都应有合理的默认值,这样你就不必传递参数,例如要使用哪个端口。

  • 子目录将自动托管。
  • 默认情况下不会跟随符号链接(在我看来,这更可能是一个问题,而不是预期的事物)。
  • 不需要根权限。
  • 如果没有提供索引文件,则会自动生成(仅在内存中,不会触及磁盘,你为什么要这样做,你这个肮脏的家伙),该索引文件将列出当前文件和文件夹(然后根据需要生成子目录的索引文件)。
  • 文件所做的更改应立即反映,因为我看不出为什么会有任何缓存...你请求一个文件,系统就会寻找该文件。

这不会是一个“可用于生产”的工具,它只是快速而简陋地托管文件夹的一种方法,所以虽然我会尽力使其安全,但这不会是我的主要目标。

无运行时依赖。