MinIO
MinIO is an probably the most well-known, self-hosted, S3-compatible object storage (read more on the MinIO GitHub page).
Step #1: in the MinIO web console
To use this object storage as a backend for SFTP.cloud, the first thing you need to do is creating a bucket in the MinIO web UI, as you'd usually do:
Once the bucket is created, the next thing you'll need is an Access Key (and its associated Secret) to access it. You can use your primary MinIO identity for this, but we recommend you provision dedicated per-bucket access credentials. With the community edition of MinIO you cannot do that in the web UI, but it's easy to do at command line. Here's a naive example:
mc alias set myminio https://minio.example.com ADMIN_KEY ADMIN_SECRET
cat > mybucket-policy.json <<'EOF'
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject","s3:PutObject","s3:DeleteObject","s3:ListBucket"],
"Resource": ["arn:aws:s3:::mybucket","arn:aws:s3:::mybucket/*"]
}
]
}
EOF
mc admin accesskey create myminio mybucket-user \
--access-key "AKIAEXAMPLEKEY" \
--secret-key "SECRETEXAMPLE" \
--policy ./mybucket-policy.json \
--expiry-duration 90d
If you'd prefer to do this via a web-based graphical console, there are 3rd-party projects that do just that, for example this one: https://github.com/georgmangold/console
That's it for the MinIO side. Now let's move to the SFTP.cloud side.
Step #2: in your SFTP.cloud Storage Connector
The first thing to do is to add a new Virtual File System. For MinIO in particular there are a few small (but extremely important) details to pay attention to:
- Type:
S3(just like any other S3-compatible object stores) - Region: leave empty
- Endpoint: this needs to be the
RustFSMinIO S3 endpoint, by defaultRustFSMinIO useshttp://<rustfs-host-ip-addr>:unless you configured it with TLS (which you definitely should) in which case it's302929000https://...
Do NOT forget to push the Save button next to the Access secret after you type it in, or it won't be saved, and nothing will work.
Then, still in the Storage Connector UI, go to the Users page, and give your user(s) the desired access to the newly created VFS:
Finally
Test it out. Connect to it via your SFTP.cloud WebClient, create a folder, upload some files...
Then, back in the MinIO web UI you can verify that your folder and file(s) did actually land there:
And you're done. That's all there is to it. 😄




