1 个不稳定版本

0.1.0 2019年9月22日

#44 in #scenario

MIT 许可证

2KB

InTray

Build Status Lastest Release

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

A screenshot of 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等。
  • 支持重试失败的任务以及暂停/恢复正在进行的任务。

无运行时依赖。