weisd 317cadaed8 refactor(ecstore): simplify bucket metadata error handling by using ConfigNotFound
- Remove specific bucket metadata error variants (BucketPolicyNotFound, etc.)
- Unify all configuration-not-found errors to use StorageError::ConfigNotFound
- Simplify error handling in bucket metadata system by removing redundant error conversions
- Clean up error matching patterns in metadata getter methods
- Remove debug print statement from get_bucket_targets_config
- Update error handling in S3 API layer to use unified ConfigNotFound error

This change improves code maintainability by reducing error type complexity
while preserving the same error semantics for API consumers.
2025-06-23 17:04:14 +08:00
2025-06-09 15:31:11 +08:00
wip
2025-06-16 08:28:46 +08:00
2025-06-17 15:06:40 +08:00
wip
2025-06-17 22:37:38 +08:00
fix
2025-06-20 10:51:36 +08:00
2025-06-05 14:26:42 +00:00
2025-06-23 13:56:21 +08:00
wip
2025-06-16 08:28:46 +08:00
wip
2025-06-16 08:28:46 +08:00
2024-07-01 19:33:20 +08:00
2025-05-27 13:56:19 +08:00

RustFS

English Documentation |中文文档

Prerequisites

Package Version Download Link
Rust 1.8.5+ rust-lang.org/tools/install
protoc 31.1+ protoc-31.1-linux-x86_64.zip
flatc 24.0+ Linux.flatc.binary.g++-13.zip

Building RustFS

Generate Protobuf Code

cargo run --bin gproto

Using Docker for Prerequisites

- uses: arduino/setup-protoc@v3
  with:
    version: "30.2"

- uses: Nugine/setup-flatc@v1
  with:
    version: "25.2.10"

Adding Console Web UI

  1. Download the latest console UI:
    wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip
    
  2. Create the static directory:
    mkdir -p ./rustfs/static
    
  3. Extract and compile RustFS:
    unzip rustfs-console-latest.zip -d ./rustfs/static
    cargo build
    

Running RustFS

Configuration

Set the required environment variables:

# Basic config
export RUSTFS_VOLUMES="./target/volume/test"
export RUSTFS_ADDRESS="0.0.0.0:9000"
export RUSTFS_CONSOLE_ENABLE=true
export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9001"

# Observability config
export RUSTFS_OBS_ENDPOINT="http://localhost:4317"

# Event message configuration
#export RUSTFS_EVENT_CONFIG="./deploy/config/event.toml"

Start the service

./rustfs /data/rustfs

Observability Stack Otel and OpenObserve

OpenTelemetry Collector 和 Jaeger、Grafana、Prometheus、Loki

  1. Navigate to the observability directory:

    cd .docker/observability
    
  2. Start the observability stack:

    docker compose -f docker-compose.yml  up -d
    

Access Monitoring Dashboards

  • Grafana: http://localhost:3000 (credentials: admin/admin)
  • Jaeger: http://localhost:16686
  • Prometheus: http://localhost:9090

Configure observability

OpenTelemetry Collector address(endpoint):  http://localhost:4317 

OpenObserve and OpenTelemetry Collector

  1. Navigate to the OpenObserve and OpenTelemetry directory:
    cd .docker/openobserve-otel
    
  2. Start the OpenObserve and OpenTelemetry Collector services:
     docker compose -f docker-compose.yml up -d
    
  3. Access the OpenObserve UI: OpenObserve UI: http://localhost:5080
    • Default credentials:
      • Username: root@rustfs.com
      • Password: rustfs123
    • Exposed ports:
      • 5080: HTTP API and UI
      • 5081: OTLP gRPC
S
Description
2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.
Readme Apache-2.0 113 MiB
Languages
Rust 94.5%
Shell 4.3%
Python 1%