1 个不稳定版本
0.1.0 | 2019年9月22日 |
---|
#44 in #scenario
2KB
InTray
InTray 📥 是一个轻量级且简单的CLI工具,具有干净的Web界面,便于通过HTTP收集文件。
使用Rust编写并由简洁的Web框架tide提供支持,InTray具有合理的性能和良好的并发支持。它只提供接收上传功能,但具有极大的便利性 和可靠性。
它可以作为 python -m pyftpdlib
的替代品,尽管它没有涵盖后者所有使用场景。
安装
cargo安装 intray
(尚未发布,因为一些上游依赖项仍然不稳定。)
请访问 https://github.com/Gowee/intray/releases .
界面
服务器
intray [OPTIONS] [--] [port]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-a, --ip-addr <ip-addr> IP address to bind on [default: ::]
-d, --dir <dir> Directory to store received files [default: ./]
-c, --credentials <auth-credentials>... Credentials for HTTP Basic Auth in the format "USERNAME:PASSWD" [env:
CREDENTIALS=]
-r, --realm <auth-realm> Realm to send in `WWW-Authenticate` HTTP header for HTTP Basic Auth
[default: Intray]
ARGS:
<port> Port to bind on [default: 8080]
使用curl上传
无名称上传
curl -XPOST --data-binary@FILENAME http://HOSTNAME:PORT/upload/full
带名称上传
curl -XPOST --data-binary@FILENAME http://HOSTNAME:PORT/upload/full/FILENAME
Web UI
备注
监听地址
默认情况下,InTray监听在 [::]:8080
。
对于具有 net.ipv6.bindv6only
的Linux系统,设置为 0
(false),这是默认值,可以通过IPv4 (例如 http://127.0.0.1:8080
) 或IPv6 (例如 http://[::1]:8080
) 访达。另请参阅 IPV6(7)
。
对于Windows和其他Linux系统,只能通过IPv6访问。如果首选IPv4,请手动指定地址。
默认情况下,InTray不提供本地服务。将服务公开在公共互联网上可能会导致受到洪水攻击。
兼容性
由于这里和那里使用了现代Web功能,并且作者缺乏设置Babel管道的技能,InTray与老式的浏览器兼容性较差,不幸的是,这包括一些主要浏览器,如 IE 和一些 (甚至略微) 旧的 Chrome 和Firefox版本。
待办事项
- 使用tide重写(弃用原始actix-web版本)。
- 重写Web UI (#1)。
- 小文件不支持分块。
- 更好的反向代理支持。
- 身份验证 (HTTP基本认证)。
- 支持HTTPS,无需单独设置Web服务器。
- 支持限制空间使用。
- 将tokio{,-fs}升级到0.2(仍处于alpha版本)。
- 回退Web页面以支持IE11等。
- 支持重试失败的任务以及暂停/恢复正在进行的任务。