当前位置:   article > 正文

推荐开源项目:HFS - HTTP 文件服务器(版本 3)

hfs 开源

推荐开源项目:HFS - HTTP 文件服务器(版本 3)

项目地址:https://gitcode.com/rejetto/hfs

HFS Logo 和标语

简介

HFS 是一个强大的 Web 基于的文件服务器,让你可以轻松地从你的硬盘上访问或分享文件,无需受限于空间和带宽。无论是在个人电脑还是移动设备上,只需通过浏览器,即可实现文件的即时共享。

  • 无限存储与带宽:你作为服务器,提供无限制的空间和带宽。
  • 快速响应:即使是打包下载 100GB 的文件也能即刻启动。
  • 易用性:HFS 尝试自动检测问题并提出解决方案。
  • 虚拟文件系统:即使是一个单独的文件,也能以不同的名称进行共享,无需修改实际文件。
  • 实时监控:随时查看所有活动。
  • 带宽控制:自由调整带宽分配。
  • 直接传输:无需等待大文件上传到服务器,直接将文件转交给朋友。

这是对原 Delphi 版本 HFS 2 的全面重写。

工作原理

  1. 在你的计算机上运行 HFS,管理页面会自动打开。
  2. 选择希望可访问的文件和文件夹。
  3. 使用浏览器在其他设备上访问这些文件。
  4. 可创建账户,限制特定用户的文件访问权限。

技术特性

  • 支持 HTTPS
  • 自动证书生成
  • Unicode 兼容
  • 移动友好界面
  • 内建搜索功能
  • 账户管理
  • 恢复断点续传的下载与上传
  • 下载整个目录为 ZIP 归档
  • 远程删除
  • 网站托管功能
  • 插件支持
  • 实时连接监控
  • 多语言前端界面
  • 虚拟主机支持(插件)
  • 防暴力破解插件
  • 反向代理支持
  • 文件描述信息中的注释功能

安装步骤

注意:最低操作系统要求是 Windows 8.1 或 Windows Server 2012 R2(因为依赖 Node.js 18)。

  1. 访问 https://github.com/rejetto/hfs/releases
  2. 点击“Assets”部分
  3. 根据你的系统下载正确的版本,解压缩后运行 hfs 文件。
  4. 浏览器应自动打开本地地址,你可以在此配置管理面板。
    • 如果无法在安装 HFS 的计算机上打开浏览器,你可以在 HFS 控制台中输入 create-admin PASSWORD
    • 如果你不能访问控制台(如在服务模式下运行),可以通过 编辑配置文件 添加管理员账号。
    • 如果不想使用编辑器,你可以执行命令 echo "create-admin: PASSWORD" > config.yaml 创建配置文件。

如果你通过本地回环地址访问管理面板,默认情况下 HFS 不会要求登录。如果不希望如此,你可以在管理面板或控制台中禁用该行为。

其他系统

如果你的系统不是 Windows/Linux/Mac 或不希望运行二进制文件,你可以尝试以下替代方法:

  1. 安装 Node.js 18
  2. 在命令行执行 npx hfs@latest

若上述过程失败,可能是因为缺少 Node.js gyp 的某些需求

配置和其他文件将存储在 %HOME%/.vfs 目录下。

服务模式

如果你想让 HFS 在启动时自动运行(作为服务),建议使用以下方法:

Linux 上
  1. 安装 Node.js
  2. 创建 /etc/systemd/system/hfs.service 文件,内容如下:
[Unit]
Description=HFS
After=network.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/npx -y hfs@latest

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  1. 执行 sudo systemctl daemon-reload && sudo systemctl enable hfs && sudo systemctl start hfs && sudo systemctl status hfs
Windows 上
  1. 安装 Node.js
  2. 运行 npm -g i hfs
  3. 运行 npx qckwinsvc2 install name="HFS" description="HFS" path="%APPDATA%\npm\node_modules\hfs\src\index.js" args="--cwd %HOMEPATH%\.hfs" now

更新时,请先执行 npx qckwinsvc2 uninstall name="HFS",再运行 npm -g update hfsnpx qckwinsvc2 install ...

控制台命令

如果有完全访问 HFS 控制台的权限,你还可以输入命令。输入 help 获取完整列表。

配置

详细配置见 config.md 文档

存储位置

配置文件 config.yaml 存储于当前工作目录(cwd),默认为 Windows 版本的 hfs.exe 同级目录,或其他系统的 USER_FOLDER/.hfs。你可以通过命令行参数 --cwd 指定不同工作目录,或设置环境变量 HFS_CONFIG 指定不同配置文件。

了解更多关于配置文件格式的信息

国际化

HFS 支持多种语言显示。已提供一些语言的翻译。如果发现错误,请报告,或者 直接编辑源文件

在管理面板的语言设置中,你可以安装额外的语言文件。

如果你使用的语言缺失,请考虑 自己进行翻译

升级至 HFS 3 的理由

相较于 HFS 2.x,新版本已经拥有一些独特的优势:

  • 更稳定:设计用于持续运行的服务,而 HFS 1-2 适用于临时文件传输。
  • 密码安全:密码永远不会真正保存,仅保存非还原哈希值。
  • 快速搜索:提升至最多 12 倍的速度。
  • 权限管理更灵活。

不过,由于以下原因,你可能会选择继续使用 HFS 2.x:

  • 更小的体积
  • 经过更多测试
  • 对一些人来说,经典的窗口界面可能更容易操作

安全性

尽管 HFS 注重易用性,但我们也重视安全性:

  • 支持 HTTPS
  • 密码不会被保存,即使通过 HTTP 登录,用户密码也安全(得益于 SRP 协议)
  • 每次发布都会进行自动化测试,包括库的安全审核
  • 默认没有管理员密码

为了提高安全性,你还可以采取以下措施:

  • 使用 HTTPS,并尽可能使用官方证书,免费证书可通过 Let's Encrypt 获取。
  • 在“互联网”页面配置域名,并启用“仅接受通过域名请求”
  • 安装 rejetto/antidos 插件
  • 确保“antibrute”插件正在运行
  • 禁止“不受保护的本地管理员”

隐藏功能

  • 地址后面加上 #LOGIN 会弹出登录对话框。
  • 地址后面加上 ?lang=CODE 强制指定语言。
  • 在切换全部复选框时右键/Ctrl/Cmd 点击将反转每个复选框的状态。
  • 地址后面加上 ?login=USER:PASSWORD 将自动在浏览器中登录。

如何参与贡献

有多种方式可以为 HFS 贡献力量:

  • 报告 Bug

    提交 Bug 非常重要,如果你不确定,也可提交,我们会一起讨论。对于重要的安全问题,请 私下联系我们,以便我们在公开披露前为其他用户提供安全更新。

  • 翻译成你的语言

  • 分享想法

    即使项目不应该变得过于复杂,你的建议也可能成为新的插件创意。

  • 贡献代码

    在进行代码更改之前,先打开“问题”或“讨论”,以便我们合作并确定最佳路径。

  • 开发插件

    插件可以改变外观(主题),或引入新的功能。

更多信息

总之,HFS 是一款强大且实用的文件服务器工具,不仅适合日常办公和个人分享文件,也非常适合开发者进行二次开发和扩展。立即尝试,让我们共同打造更优秀的文件共享体验!

项目地址:https://gitcode.com/rejetto/hfs

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/681428
推荐阅读
相关标签
  

闽ICP备14008679号