Cloud Native 5 min read

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.

Open Source Tech Hub
Open Source Tech Hub
Open Source Tech Hub
How to Deploy and Use RustFS: A Fast, Secure, Cloud‑Native Object Storage

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:latest

Usage 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:

Configuration screenshot
Configuration screenshot

Test upload result screenshot:

Test upload screenshot
Test upload screenshot
cloud nativeDockerRustObject StorageS3RustFS
Open Source Tech Hub
Written by

Open Source Tech Hub

Sharing cutting-edge internet technologies and practical AI resources.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.