miniserve - 一种通过 HTTP 提供文件和目录的 CLI 工具

 

GitHub - svenstaro/miniserve:🌟当您真的只想现在通过 HTTP 提供一些文件时!

 


miniserve - 一种通过 HTTP 提供文件和目录的 CLI 工具

当您真的只想现在通过 HTTP 提供一些文件时!

miniserve 是一个小型的、独立的跨平台 CLI 工具,它允许你只获取二进制文件并通过 HTTP 提供一些文件。 有时,这只是一种比正确做事更实用、更快捷的方法。


特征

  • 易于使用
  • 正常工作:开箱即用地正确处理 MIME 类型
  • 单个二进制插入式,无需额外的依赖项
  • 使用用户名和密码(以及哈希密码)的身份验证支持
  • 超快且高度并行(感谢 Rust 和 Actix)
  • 文件夹下载(动态压缩为 或.tar.gz.zip)
  • 文件上传
  • 目录创建
  • 漂亮的主题(支持浅色和深色主题)
  • 扫描二维码快速访问
  • Shell 完成
  • 合理且安全的违约
  • TLS(适用于支持的体系结构)
  • 支持 README.md 渲染,如 GitHub 上
  • 范围请求
  • WebDAV 支持
  • Healthcheck 路由(在/__miniserve_internal/healthcheck)

用法:miniserve [选项] [路径]

参数: [路径] 要提供的路径

      [环境变量:MINISERVE_PATH=]

选项: -v, --verbose 显示详细信息,包括输出访问日志

      [环境变量:MINISERVE_VERBOSE=]

  --index <INDEX>
      要提供的目录索引文件名,如 "index.html"

      通常,当 miniserve 提供目录时,它会创建该目录的文件列表。然而,如果目录中包含此文件,miniserve 将提供该文件。

      [环境变量:MINISERVE_INDEX=]

  --spa
      启用 SPA(单页面应用)模式

      这将导致通过 --index 提供的文件处理所有不存在的文件路径。实际上,这将在发生 404 错误时提供索引文件,以便 SPA 路由器来处理请求。

      [环境变量:MINISERVE_SPA=]

  --pretty-urls
      启用美化 URL 模式

      这将导致服务器提供与路径指示的等效 `.html` 文件。

      `/about` 将尝试查找 `about.html` 并提供它。

      [环境变量:MINISERVE_PRETTY_URLS=]

-p, --port <PORT> 使用的端口

      [环境变量:MINISERVE_PORT=]
      [默认值:8080]

-i, --interfaces <INTERFACES> 监听的接口

      [环境变量:MINISERVE_INTERFACE=]

-a, --auth <AUTH> 设置身份验证

      当前支持的格式:
      username:password, username:sha256:hash, username:sha512:hash
      (例如:joe:123, joe:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3)

      [环境变量:MINISERVE_AUTH=]

  --auth-file <AUTH_FILE>
      从文件中读取身份验证值

      示例文件内容:

      joe:123
      bob:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
      bill:

      [环境变量:MINISERVE_AUTH_FILE=]

  --route-prefix <ROUTE_PREFIX>
      使用特定的路由前缀

      [环境变量:MINISERVE_ROUTE_PREFIX=]

  --random-route
      生成一个随机的 6 位十六进制路由

      [环境变量:MINISERVE_RANDOM_ROUTE=]

-P, --no-symlinks 隐藏符号链接并防止它们被跟随

      [环境变量:MINISERVE_NO_SYMLINKS=]

-H, --hidden 显示隐藏文件

      [环境变量:MINISERVE_HIDDEN=]

-S, --default-sorting-method <DEFAULT_SORTING_METHOD> 文件列表的默认排序方法

      [环境变量:MINISERVE_DEFAULT_SORTING_METHOD=]
      [默认值:name]

      可选值:
      - name: 按名称排序
      - size: 按大小排序
      - date: 按最后修改日期排序(自然排序:按字母数字顺序)

-O, --default-sorting-order <DEFAULT_SORTING_ORDER> 文件列表的默认排序顺序

      [环境变量:MINISERVE_DEFAULT_SORTING_ORDER=]
      [默认值:desc]

      可选值:
      - asc: 升序
      - desc: 降序

-c, --color-scheme <COLOR_SCHEME> 默认配色方案

      [环境变量:MINISERVE_COLOR_SCHEME=]
      [默认值:squirrel]
      [可选值:squirrel, archlinux, zenburn, monokai]

-d, --color-scheme-dark <COLOR_SCHEME_DARK> 默认深色配色方案

      [环境变量:MINISERVE_COLOR_SCHEME_DARK=]
      [默认值:archlinux]
      [可选值:squirrel, archlinux, zenburn, monokai]

-q, --qrcode 启用二维码显示

      [环境变量:MINISERVE_QRCODE=]

-u, --upload-files [<ALLOWED_UPLOAD_DIR>] 启用文件上传(并可选择为哪个目录指定)

      提供的路径不是物理文件系统路径,而是相对于提供目录的路径。例如,如果提供的目录是 '/home/hello',则设置为 '/upload' 以允许上传到 '/home/hello/upload'。当通过环境变量指定时,始终需要指定路径。

      [环境变量:MINISERVE_ALLOWED_UPLOAD_DIR=]

  --web-upload-files-concurrency <WEB_UPLOAD_CONCURRENCY>
      配置网站访问时并发上传的数量。必须启用 upload-files 选项才能使此设置生效。

      [环境变量:MINISERVE_WEB_UPLOAD_CONCURRENCY=]
      [默认值:0]

-U, --mkdir 启用创建目录

      [环境变量:MINISERVE_MKDIR_ENABLED=]

-m, --media-type <MEDIA_TYPE> 指定可上传的媒体类型

      [环境变量:MINISERVE_MEDIA_TYPE=]
      [可选值:image, audio, video]

-M, --raw-media-type <MEDIA_TYPE_RAW> 直接指定可上传的媒体类型表达式

      [环境变量:MINISERVE_RAW_MEDIA_TYPE=]

-o, --overwrite-files 启用在文件上传时覆盖现有文件

      [环境变量:MINISERVE_OVERWRITE_FILES=]

-r, --enable-tar 启用未压缩的 tar 存档生成

      [环境变量:MINISERVE_ENABLE_TAR=]

-g, --enable-tar-gz 启用 gz 压缩的 tar 存档生成

      [环境变量:MINISERVE_ENABLE_TAR_GZ=]

-z, --enable-zip 启用 zip 存档生成

      警告:压缩大目录时可能会导致内存溢出异常,因为 zip 生成是在内存中完成的,无法实时发送

      [环境变量:MINISERVE_ENABLE_ZIP=]

-C, --compress-response 压缩响应

      警告:启用此选项可能会因 CPU 开销而减慢传输,因此默认禁用。

      仅在用户的连接较慢或希望减少服务器带宽使用时启用此选项。

      [环境变量:MINISERVE_COMPRESS_RESPONSE=]

-D, --dirs-first 首先列出目录

      [环境变量:MINISERVE_DIRS_FIRST=]

-t, --title <TITLE> 在页面标题和标题中显示的内容

      [环境变量:MINISERVE_TITLE=]

  --header <HEADER>
      在响应中插入自定义头部。每个头部以 'Header:Value' 对指定。此参数可以多次使用,以添加多个头部。

      示例:--header "Header1:Value1" --header "Header2:Value2"(如果头部已经设置或先前插入,则不会被覆盖)

      [环境变量:MINISERVE_HEADER=]

-l, --show-symlink-info 在目录列表中可视化符号链接

      [环境变量:MINISERVE_SHOW_SYMLINK_INFO=]

-F, --hide-version-footer 隐藏版本页脚

      [环境变量:MINISERVE_HIDE_VERSION_FOOTER=]

  --hide-theme-selector
      隐藏主题选择器

      [环境变量:MINISERVE_HIDE_THEME_SELECTOR=]

-W, --show-wget-footer 如果启用,显示 wget 命令以递归下载当前目录

      [环境变量:MINISERVE_SHOW_WGET_FOOTER=]

  --print-completions <shell>
      为 shell 生成完成文件

      [可选值:bash, elvish, fish, powershell, zsh]

  --print-manpage
      生成 man 页面

  --tls-cert <TLS_CERT>
      使用的 TLS 证书

      [环境变量:MINISERVE_TLS_CERT=]

  --tls-key <TLS_KEY>
      使用的 TLS 私钥

      [环境变量:MINISERVE_TLS_KEY=]

  --readme
      启用目录中 README.md 的渲染

      [环境变量:MINISERVE_README=]

-I, --disable-indexing 禁用索引

      这将防止生成目录列表并返回错误。

      [环境变量:MINISERVE_DISABLE_INDEXING=]

  --enable-webdav
      启用只读 WebDAV 支持(PROPFIND 请求)

      当前与 -P|--no-symlinks 不兼容(参见 https://github.com/messense/dav-server-rs/issues/37)

      [环境变量:MINISERVE_ENABLE_WEBDAV=]

-h, --help 打印帮助(使用 '-h' 查看摘要)

-V, --version 打印版本

 

posted @ 2025-04-04 04:49  suv789  阅读(177)  评论(0)    收藏  举报