#ftp-server #ftp #gc #ftps #server #json-file

app unftp

当你需要FTP,但又不想使用。基于libunftp的异步、云方向的FTP(S)服务器。

26个版本

0.14.7 2024年6月20日
0.14.5 2023年12月24日
0.14.4 2023年9月17日
0.14.3 2023年6月16日
0.12.2 2020年10月30日

#141 in 网络编程

Download history 201/week @ 2024-05-17 11/week @ 2024-05-24 2/week @ 2024-05-31 1/week @ 2024-06-07 49/week @ 2024-06-14 59/week @ 2024-06-21 12/week @ 2024-06-28 4/week @ 2024-07-05

1,515次每月下载

Apache-2.0

725KB
2.5K SLoC

unFTP

Crate Version Build Status Docker Pulls Follow on Telegram

当你需要FTP,但又不想使用。

logo

网站 | 文档 | libunftp

unFTP是用Rust编写的FTP(S)服务器,基于libunftpTokio异步运行时构建。它与普通FTP服务器不同,因为它提供以下功能:

  • 可配置的认证(例如匿名、PAM或JSON文件)。
  • 可配置的存储后端(例如GCS或文件系统)。
  • 具有健康端点的HTTP服务器,例如在Kubernetes中用于就绪和存活探针。
  • Prometheus集成以进行监控。
  • 用于HA Proxy和Nginx等代理后的代理协议模式。
  • 结构化日志记录,以及将日志发送到Redis实例的能力。

使用unFTP,您可以将符合RFC的FTP(S)呈现给外部世界,同时让您在边界内部自由使用现代API和技术。

安装和用法

用户文档可在我们的网站unftp.rs上找到。

Docker镜像

项目包含模板化的Dockerfile。要获取可用命令的列表,请运行

make help

我们提供3种不同的选项来构建unFTP Docker镜像

  • scratch:在rust:slim中构建二进制文件,并在FROM scratch镜像中部署。unFTP二进制文件使用musl libc进行静态链接。
  • alpine(默认):在rust:slim中构建,并在alpine中部署。此镜像使用musl而不是完整的libc构建。unFTP二进制文件使用musl libc进行静态链接。
  • alpine-debug:与alpine相同的镜像,但使用unftp的调试构建,并添加了lftpCurlFtpFS等工具,同时以root身份运行。
  • alpine-istio:与alpine相同,但安装了scuttle。用于与Istio一起使用。
  • alpine-istio-debug:与alpine-debug相同,但增加了alpine-istio的功能。

构建alpine Docker镜像

make docker-image-alpine

或者您也可以从Docker Hub下载预先制作好的镜像。

启用tokio-console

您可以使用tokio-console来分析unFTP中运行的异步任务。为此,您需要编译带有tokio_console功能并启用tokio_unstable cfg的构建或运行。

例如

RUSTFLAGS="--cfg tokio_unstable" cargo build --features tokio_console

RUSTFLAGS="--cfg tokio_unstable" cargo run --features tokio_console -- -vv

unFTP将在默认端口6669上监听来自tokio-console的连接。

获取帮助并保持最新

我们将尽力提供支持。您可以在讨论页面上与我们互动或创建一个Github问题。

您还可以在Telegram上关注新闻并与我们交谈。

许可证

您可以在Apache-2.0许可证的条款下自由使用、修改和分发此软件。

另请参阅

依赖项

~31–47MB
~1M SLoC