Files on mobilePreview
Files in kaiport for iPhone and iPad – SFTP on SSH connections and storage over FTP/FTPS, S3, WebDAV and Azure Blob.
The screenshots of the mobile app on these pages are placeholders and will be replaced with screens of the released app.
kaiport for iPhone and iPad lets you browse files over SFTP from any SSH session, and it opens storage connections (FTP/FTPS, S3, WebDAV and Azure Blob) in a file browser instead of a terminal. The same browser shows the app's own folder, which you also find in the Files app under On My iPhone › kaiport. This page lists what the app supports for each protocol; the connection fields are the same as in the desktop app (see Storage connections).
What you can do with files
All protocols go through one common file interface, so the same actions work on every connection:
- List folders with name, size and modification date, and with permissions such as
rwxr-xr-xwhere the protocol has them. - Read files and write them.
- Download files to the device, share them and preview them with Quick Look; upload files from the Files app and from Photos, with progress.
- Open text files in the built-in editor and save them back.
- Create folders.
- Rename and move files and folders.
- Delete files, and folders with everything in them.
Start folder
| Connection | Browsing starts in |
|---|---|
| SSH (SFTP) | The shell's current folder, if the shell reports it (OSC 7, for example through the shell integration); otherwise your home folder |
| FTP / FTPS | The connection's remote start directory; otherwise the folder the server puts you in after the sign-in |
| S3 | The remote start directory; otherwise the list of your buckets, or the top of the bucket set in the connection |
| WebDAV | The remote start directory, relative to the server URL; otherwise the server URL itself |
| Azure Blob | The remote start directory; otherwise the list of your containers, or the top of the container set in the connection |
The remote start directory is the connection's Remote start directory field.
SFTP on SSH connections
On an SSH connection, the file browser uses the connection of the terminal session: there is no second sign-in, and the terminal and file access work at the same time while the session is connected. Symbolic links that point to folders open like folders.
FTP and FTPS
| Encryption | Default port | How it works |
|---|---|---|
| FTP (unencrypted) | 21 | No TLS. User name, password and files travel as plain text. |
| FTPS explicit (AUTH TLS) | 21 | The connection starts unencrypted and switches to TLS before the sign-in. |
| FTPS implicit | 990 | TLS from the first byte. |
- With FTPS, listings and file transfers are encrypted too, and their data connections reuse the TLS session of the control connection, which many servers require.
- The app uses passive mode:
EPSVfirst,PASVwhere the server lacks it. If a server behind NAT announces a private address, the app connects to the address it already reached instead. - Folder listings use
MLSDwhere the server supports it, otherwise the Unix- or Windows-style output ofLIST. - File names are exchanged in UTF-8 when the server supports it; otherwise the app falls back to Latin-1.
- Without a user name, the app signs in anonymously.
- An idle connection is kept open with a
NOOPevery 30 seconds. If the server closes it anyway, the app connects again with the next action.
S3
S3 connections sign every request with AWS Signature Version 4, using the access key ID and the secret access key of the connection. Besides Amazon S3, the app works with S3-compatible providers and offers the same presets as the desktop app. Replace the placeholders in angle brackets with your values:
| Provider | Endpoint | Region | Path-style |
|---|---|---|---|
| Amazon S3 | (empty) | us-east-1 | No |
| Cloudflare R2 | https://<ACCOUNT_ID>.r2.cloudflarestorage.com | auto | No |
| Backblaze B2 | https://s3.<REGION>.backblazeb2.com | us-west-004 | No |
| Wasabi | https://s3.<REGION>.wasabisys.com | us-east-1 | No |
| DigitalOcean Spaces | https://<REGION>.digitaloceanspaces.com | us-east-1 | No |
| Google Cloud Storage | https://storage.googleapis.com | auto | Yes |
| Hetzner Object Storage | https://<LOCATION>.your-objectstorage.com | eu-central | No |
| Scaleway | https://s3.<REGION>.scw.cloud | fr-par | No |
| OVHcloud | https://s3.<REGION>.io.cloud.ovh.net | gra | No |
| MinIO / self-hosted | http://localhost:9000 | us-east-1 | Yes |
- Endpoint: empty means Amazon S3 in the connection's region, or
us-east-1if no region is set. - Addressing: with your own endpoint, the bucket goes into the path unless you turn Path-style addressing off. With Amazon S3, it goes into the host name unless you turn it on.
- Region: if S3 answers that a bucket lives in another region, the app repeats the request in that region.
- Bucket: with a bucket in the connection, browsing happens inside it. Without one, the top level lists all buckets of your account. Buckets themselves are created and deleted in the provider's console.
- Folders are prefixes of object names. Creating a folder stores an empty
folder/object. Renaming a folder copies every object below it to the new name and deletes the originals; deleting a folder deletes every object below it.
WebDAV
A WebDAV connection points to the server URL, for example https://cloud.example.com/remote.php/dav/files/USER/ for Nextcloud. If you leave out https://, the app adds it. It signs in with user name and password (HTTP Basic authentication); if Nextcloud refuses the sign-in, use an app password. Renaming never overwrites an existing file, and a folder is deleted with its contents in one request.
Azure Blob Storage
An Azure connection signs in with the name of the storage account and its access key (Shared Key). Use the Base64 key from Access keys in the Azure portal. Without an endpoint, the app connects to https://<account>.blob.core.windows.net; set an endpoint for other targets such as the Azurite emulator. With a container in the connection, browsing happens inside it; without one, the top level lists all containers. Containers are created and deleted in the Azure portal. As with S3, folders are prefixes of blob names.
Certificates
FTPS connections and the HTTPS connections to S3, WebDAV and Azure check the server's certificate against the certificates your device trusts. For an FTPS or WebDAV server with a self-signed certificate, turn off Verify certificate for that connection, as on the desktop.