MinIO
RustFSMinIO is an absolutelyprobably remarkablethe most well-known, self-hosted, S3-compatible object storage (read more on the RustFSMinIO webGitHub sitepage).
Step #1: in the RustFSMinIO 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 RustFSMinIO 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 issueuse themyour 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 Access Keys tab in the RustFS web UI.UI, Webut recommendit's you limit the scope of your Access Key onlyeasy to thedo bucket(s)at youcommand genuinelyline. wantHere's toa usenaive via SFTP.cloud.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
That's it for the RustFSMinIO 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 Linode Object StorageMinIO 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 RustFS S3 endpoint, by default RustFS uses
http://<rustfs-host-ip-addr>:30292unless you configured it with TLS (which you definitely should) in which case it'shttps://...
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 RustFSMinIO 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. 😄










