This is a Python3 implementation of rejetto's HTTP File Server~*
💫 Python3 版本的 rejetto HFS 哦~
🏗 进入施工场地,请戴好安全帽……
🎉 让这个作品成长吧!欢迎做出贡献!
👏 可用功能: | 🕳 计划功能: |
---|---|
文件列表,下载 | 虚拟文件系统(VFS) |
排序文件,打包下载 | 封禁、限制 |
上传,搜索 | 其他 |
账户、登录 | |
文件操作 |
🍉 支持的平台:
python3
的 TermuxWindows 平台的发行包包含便捷功能。可于此处了解。
拖放文件(夹)到批处理文件(start.bat
)或命令行(run.py
)以快速分享。
您可以从任意 PHFS 发行包获取所有开发需求。
👀 此作品还不能正式投入使用。但是,试一试吧!
如果您有兴趣测试,可以使用一份 release,或者:
安装 Python 3。
安装 Werkzeug。可以使用 pip
,或者将下载的压缩包中的文件夹 Werkzeug-(版本)/src/werkzeug
放入 clone 的 repo 内。
安装 WSGIserver。可以使用 pip
,或者将下载的压缩包中的文件夹 WSGIserver-(version)/wsgiserver.py
放入 clone 的 repo 内。
获取 sha256.js,放入 repo 文件夹。
选择一个用于 2.4 的 HFS 模板,重命名为 hfs.tpl
并放入 repo。
在 hfs.ini
中配置端口、基文件夹、允许上传的文件夹、账户。注:原 HFS 的 hfs.ini
与 PHFS 不兼容。
要开始一个服务器,用 python3
打开 run.py
;要进行开发工作,打开 test.py
。
可用的一些模板:
有缘相见 ♪(∇*)~
要在 Android QPython 3L 上使用:
/sdcard/qpython/projects3
,确保文件夹层级正确。dataclasses.py
,放入文件夹。或者,从 PIP 控制台安装 dataclasses
。run.py
重命名为 main.py
。; 要绑定的 host 地址。设为 0.0.0.0 (ipv4) 或 ::1 (ipv6) 以绑定所有
host=0.0.0.0
; 端口
port=8090
; 服务器根目录。不要包含最后的斜杠 /
; 在 Windows 下也使用 / 而非 \
; 如. /mnt , E:
base_path=
; 允许上传的实目录(本地目录)。以管道分隔 |
upload_allowed_paths=/uploads
; 在此处添加账号。以管道分隔 |
accounts=root
; 每个账号密码的基哈希。使用 `hash.py` 获取。以管道分隔 |
passwords=8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
; 每个账号允许访问的实目录。以反斜杠分隔目录 \ ,以管道分隔账号 |
account_permitted=/root\/boot
; 启用预览压缩文件吗?
preview_zip=
; 总是递归搜索目录吗?1 为真,留空为假
recur_search=1
; 总是递归打包吗?
recur_archive=1
; 是否使用 IPv6?
ipv6=
; 区域代码。用于日志等的本地化。留空为自动检测。
locale=
; 使用哪种字符编码排序文件列表?
; 留空为自动检测。不过,当文件名包含不属于此编码的字符时,会出现错误。
; 提示:使用 gb18030 以使用拼音排序。
sort_encoding=utf-8
; 隐藏以点开头的文件吗?
; 仍然可以在地址栏输入正确的文件名以访问它们。
hide_dots=
run.py
: 开始一个服务器。它可用于 aarch64 架构的 pypy。
hfs.ini
: 一些如端口的配置在这里。此时您可以配置基文件夹作为根目录。
hash.py
: 直接运行此文件以交互获取密码哈希值。
test.py
: 开始一个服务器用于开发、调试。它包含 werkzeug 的重载功能。
_test_macro.py
: 运行指定在命令行 argv1 的宏。
cfgLib.py
: 对象 Config
在此文件中。
classesLib.py
: 这里有一些有用的类。
helpersLib.py
: 这里有一些有用的函数。
mimeLib.py
: 管理 MIME 类型。使用如 mimeLib.getmime('*.html')
获得对应的 MIME 类型。您可以在 mime.ini
定义您自己的 MIME 类型。
scriptLib.py
: 当运行宏或符号时,通常会调用这里的函数。
serverLib.py
: 定义了一个运行如 HFS 的 WSGI 应用。
tplLib.py
: 这是模板解释器。
hashLib.py
: 此文件中的类可获取文件哈希值(基哈希、会话哈希)。
i18n.ini
: 包含本地化数据。
i18nLib.py
: 其中的 I18n.get_string()
可获取本地化字符串。