Skip to content

Provider Reference

Technical reference for all 23 storage protocols supported by AeroFTP. Protocols are grouped by connection type.

Server Protocols

Direct server connections using standard protocols.

ProtocolRust CrateAuth MethodDefault PortTLS
FTPsuppaftp 8Username/Password21Optional (FTPS)
FTPSsuppaftp 8Username/Password21 / 990Explicit / Implicit
SFTPrussh 0.57Password / Key / Agent22SSH (built-in)
WebDAVreqwest 0.13Username/Password443HTTPS
S3-Compatiblereqwest 0.13Access Key + Secret (HMAC-SHA256)443HTTPS

FTP / FTPS

FeatureDetails
APIRFC 959 (FTP), RFC 4217 (FTPS)
CommandsMLSD, MLST, FEAT, PASV, EPSV
TLS modesNone, Explicit (STARTTLS), Implicit, ExplicitIfAvailable
UploadStreaming via STOR
SpecialTLS downgrade detection with security warning

SFTP

FeatureDetails
APISSH File Transfer Protocol v3
AuthPassword, private key (RSA/Ed25519/ECDSA), SSH agent
UploadStreaming
SpecialTOFU host key verification (PuTTY-style dialog), symlink directory detection

WebDAV

FeatureDetails
APIRFC 4918
XML parserquick-xml 0.39 (event-based)
UploadStreaming PUT
PresetsNextcloud, Seafile, CloudMe, custom
SpecialRoot boundary enforcement (initial_path)

S3-Compatible

FeatureDetails
APIAWS S3 REST API
AuthAWS Signature v4 (HMAC-SHA256)
UploadMultipart (5 MB parts)
Paginationcontinuation-token loop
PresetsAWS, Wasabi, DigitalOcean Spaces, Backblaze B2, Cloudflare R2, Storj, Alibaba OSS, Tencent COS, Yandex Object Storage, MinIO, custom
SpecialR2 Account ID field with auto-computed endpoint

OAuth Cloud Providers

Cloud storage services using OAuth2 for authentication.

ProviderAuthFree TierAPI Base URL
Google DriveOAuth2 PKCE15 GBhttps://www.googleapis.com/drive/v3
DropboxOAuth2 PKCE2 GBhttps://api.dropboxapi.com/2
OneDriveOAuth2 PKCE5 GBhttps://graph.microsoft.com/v1.0
BoxOAuth2 PKCE10 GBhttps://api.box.com/2.0
pCloudOAuth2 PKCE10 GBhttps://api.pcloud.com / https://eapi.pcloud.com
Zoho WorkDriveOAuth25 GBhttps://www.zohoapis.{region}/workdrive/api/v1
kDriveOAuth215 GBhttps://api.infomaniak.com/3/drive/{drive_id}
KoofrOAuth2 PKCE10 GBhttps://app.koofr.net/api/v2
Yandex DiskOAuth210 GBhttps://cloud-api.yandex.net/v1/disk

Google Drive

FeatureDetails
UploadResumable (multipart for small files)
TrashFull lifecycle (list, restore, permanent delete)
VersionsList, download, restore
Share linksViewer/editor permissions
SpecialStarring, comments, custom properties, description
Rate limit12,000 queries / 100 seconds

Dropbox

FeatureDetails
UploadChunked sessions for files >150 MB
TrashList, restore, permanent delete
SpecialTags (full CRUD), content hash
Rate limitApp-based, burst-friendly

OneDrive

FeatureDetails
UploadResumable for files >4 MB (auto-threshold)
TrashRecycle bin with restore and permanent delete
VersionsList, download, restore
Share linksView/edit, expiry date
Rate limitThrottled via Retry-After header

Box

FeatureDetails
UploadChunked for files >50 MB
TrashFull lifecycle
SpecialComments, collaborations, tags (inline chips), watermark (Enterprise), folder locks (Enterprise), PRO badge system
Rate limit1,000 API calls / minute

pCloud

FeatureDetails
UploadMultipart
RegionsUS (api.pcloud.com) and EU (eapi.pcloud.com)
Share linksDownload links with optional expiry
QuotaStorage quota reporting

Zoho WorkDrive

FeatureDetails
RegionsUS, EU, IN, AU, JP, UK, CA, SA (8 endpoints)
UploadMultipart
TrashRestore and permanent delete
LabelsTeam-level color labels, applied per-file
VersionsList, download, restore/promote
SpecialTeam ID auto-detection

kDrive

FeatureDetails
UploadMultipart
PaginationCursor-based
SpecialDrive ID required, Infomaniak account

Koofr

FeatureDetails
UploadMultipart
AuthOAuth2 PKCE
TrashList, restore, empty
SpecialEU-based (Slovenia), 10 GB free

Yandex Disk

FeatureDetails
UploadURL-based (get upload URL, then PUT)
TrashList, restore, permanent delete, empty
Share linksPublic links
SpecialOAuth client ID/Secret configurable in Settings

API Key / Token Providers

Cloud storage services using API keys, bearer tokens, or session-based authentication.

ProviderAuthFree TierAPI Base URL
MEGAEmail/Password (AES-ECB)20 GBhttps://g.api.mega.co.nz
4sharedOAuth 1.0 (HMAC-SHA1)15 GBhttps://api.4shared.com/v1_2
FilenEmail/Password10 GBhttps://gateway.filen.io
InternxtOAuth2 PKCE1 GBhttps://drive.internxt.com
FileLuAPI Key10 GBhttps://filelu.com/api
OpenDriveSession (login)5 GBhttps://dev.opendrive.com/api/v1
JottacloudUsername/Password5 GBhttps://jottacloud.com/jfs

MEGA

FeatureDetails
AuthEmail + password-derived AES key (AES-128-ECB)
UploadDirect encrypted upload
EncryptionClient-side E2E encryption
SpecialObfuscated file/folder IDs

4shared

FeatureDetails
AuthOAuth 1.0 (HMAC-SHA1, RFC 5849)
Rust moduleoauth1.rs (reusable)
UploadMultipart
PaginationID-based
SpecialCustom string_or_i64 deserializer for Long IDs

Filen

FeatureDetails
AuthEmail/Password + optional 2FA
EncryptionClient-side E2E encryption
UploadChunked encrypted upload
2FAAlways sends twoFactorCode field ("XXXXXX" default when not set)

Internxt

FeatureDetails
AuthOAuth2 PKCE
EncryptionZero-knowledge E2E
UploadEncrypted chunks
Special~800 lines Rust implementation

FileLu

FeatureDetails
AuthAPI Key
UploadMultipart
TrashList deleted, restore file/folder, permanent delete
Special10 extra commands: set_file_password, set_file_privacy, clone_file, set_folder_password, set_folder_settings, list_deleted_files, restore_deleted_file, restore_deleted_folder, permanent_delete_file, remote_url_upload
PresetsAlso accessible via FTP, FTPS, WebDAV, S3

OpenDrive

FeatureDetails
AuthSession-based (login endpoint)
UploadDirect upload
TrashList, restore, permanent delete
ChecksumsMD5
Compressionzlib
Share linksExpiring public links
Special~1562 lines Rust implementation

Jottacloud

FeatureDetails
AuthUsername/Password
UploadMultipart XML-based
SpecialNorwegian provider, XML API

Special Protocols

ProviderAuthAPI Base URLPurpose
Azure BlobSAS Token / Connection Stringhttps://{account}.blob.core.windows.netEnterprise blob storage
GitHubPersonal Access Tokenhttps://api.github.comRepository file access

Azure Blob Storage

FeatureDetails
AuthShared Access Signature (SAS) or Connection String
XML parserquick-xml 0.39 (event-based)
UploadBlock blobs (PUT)
PaginationNextMarker loop
SpecialContainer-level access

GitHub

FeatureDetails
AuthPersonal Access Token (PAT)
APIGitHub REST API v3
UploadBase64-encoded content via Contents API
SpecialRepository and branch selection, commit-based versioning

StorageProvider Trait

All protocols implement a unified StorageProvider trait with 18 methods:

MethodDescription
connect()Establish connection
disconnect()Close connection
list()List directory contents
cd() / cd_up()Navigate directories
mkdir()Create directory
delete()Delete file or directory
rename()Rename entry
download_file()Download with progress
upload_file()Upload with progress
stat()Get file metadata
search()Search for files
move_file()Move file to different path
list_trash()List trash contents
restore_from_trash()Restore trashed item
permanent_delete()Permanently delete from trash
create_share_link()Generate sharing link
get_storage_quota()Query storage usage
list_versions() / download_version() / restore_version()Version management

Dependency Summary

CrateVersionUsed By
suppaftp8.0.1 (pinned)FTP, FTPS
russh0.57SFTP
reqwest0.13All HTTP-based protocols
quick-xml0.39WebDAV, Azure Blob, S3
tokio-util0.7Streaming I/O
secrecy0.8All credential handling

suppaftp Pin

suppaftp is pinned to =8.0.1 because v8.0.2 uses std::os::fd::AsFd which is Unix-only and breaks Windows builds.

Released under the GPL-3.0 License.