How to Deploy and Use RustFS: A Fast, Secure, Cloud‑Native Object Storage
RustFS is an open‑source, Rust‑based distributed object storage system that is fully S3‑compatible, runs on any major OS and CPU architecture, and can be quickly deployed with Docker for cloud‑native environments, with step‑by‑step usage examples in PHP.
Introduction
RustFS is a simple, efficient, distributed object storage system written in Rust. It is 100% compatible with the S3 protocol, released under the Apache 2.0 license, and aims to provide a commercial‑friendly alternative to proprietary storage solutions.
Operating system and CPU support: RustFS can run on Linux, Unix, Windows, macOS, FreeBSD, Docker, and edge gateways, supporting x86, ARM and other architectures.
Key Features
S3 Compatibility : full S3 protocol support, works with big data, data lakes, backup software, image processing, industrial software.
Distributed : designed as a distributed object store.
Commercial‑Friendly : Apache 2.0 license makes it suitable for commercial use.
High Performance : Rust provides near‑C speed.
Safety : memory‑safe Rust guarantees 100% safety.
Cross‑Platform : runs on Windows, macOS, and Linux.
Extensible : supports custom plugins.
Customizable : open‑source nature allows user‑defined extensions.
Cloud‑Native : deployable via Docker for rapid cloud‑native deployments.
Quick Start
Deployment
Run the official Docker image:
docker run -d \
--name rustfs \
-p 9000:9000 \
-p 9001:9001 \
-v d:/rustfs/data:/data \
-e RUSTFS_VOLUMES=/data/rustfs0,/data/rustfs1,/data/rustfs2,/data/rustfs3 \
-e RUSTFS_ACCESS_KEY=rustfsadmin \
-e RUSTFS_SECRET_KEY=rustfsadmin \
-e RUSTFS_CONSOLE_ENABLE=true \
rustfs/rustfs:latestUsage with PHP (Webman)
A Webman‑admin demo uses the league/flysystem-aws-s3-v3 plugin to upload files to RustFS. composer require league/flysystem-aws-s3-v3 Configure the storage endpoint (replace with your service address):
Domain and endpoint must point to the API service, e.g. http://192.168.3.29:9000 .
After configuration, uploading a file returns a JSON response similar to:
{
"code": 0,
"msg": "ok",
"data": [
{
"key": "file",
"origin_name": "webman实战教程.png",
"save_name": "108b7f4d06ad88f608df22a4888a5ba7.png",
"save_path": "/108b7f4d06ad88f608df22a4888a5ba7.png",
"url": "http://192.168.3.29:9000/108b7f4d06ad88f608df22a4888a5ba7.png",
"unique_id": "108b7f4d06ad88f608df22a4888a5ba7",
"size": 24556,
"mime_type": "image/png",
"extension": "png"
}
]
}Configuration screenshot:
Test upload result screenshot:
Open Source Tech Hub
Sharing cutting-edge internet technologies and practical AI resources.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
