Integration matrix on local Docker containers for FTP, SFTP (ed25519), WebDAV, and S3/MinIO.
Target: aeroftp-cli (CLI) and shared provider logic Scope: base operations (connect / ls / stat / get / put / mkdir / rm / mv / tree / hashsum), 10 MB and 100 MB files with end-to-end SHA-256 verification Profiles used: Docker FTP, Docker SFTP ed25519, Docker WebDAV, Docker MinIO
| Protocol | connect | ls | mkdir | put | stat | get | cat | mv | rm | tree | hashsum | 10 MB | 100 MB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FTP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ SHA256 | ✅ 345 MB/s |
| SFTP ed25519 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ SHA256 | ✅ 17 MB/s |
| WebDAV | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ SHA256 | ✅ 525 MB/s |
| S3 / MinIO | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ SHA256 | ✅ 633 MB/s |
Reported throughput is end-to-end over loopback (container to host on the same machine) and is not representative of real-network workloads.
All containers are defined in the harness docker-compose.yml:
| Service | Container | Port | Image |
|---|---|---|---|
| FTP | aeroftp-test-ftps | 2121 | fauria/vsftpd |
| SFTP | aeroftp-test-sftp | 2223 | local build sftp-advanced |
| WebDAV | aeroftp-test-webdav | 8080 | bytemark/webdav |
| S3 | aeroftp-test-minio | 9000, 9001 | minio/minio |
# harness, from the published docker-harness directory (see methodology)
./setup.sh
docker compose up -d --build
# saved profiles for the endpoints and credentials in the table above, named
# as in this run: create them in the app (New Server) or with
# `aeroftp-cli profile-add --name ... --protocol ... --host ... --port ...
# --username ...` plus `--password-stdin` (or `--key` for the SFTP key user);
# for MinIO set the bucket aeroftp-test and path-style addressing in the app
aeroftp-cli -P "Docker FTP" ls /
aeroftp-cli -P "Docker SFTP ed25519" ls /home/user_key
aeroftp-cli -P "Docker WebDAV" ls /
aeroftp-cli -P "Docker MinIO" ls /