MinIO: S3-Objektspeicher selbst hosten | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

MinIO S3 Objektspeicher Selfhosted

Zuletzt aktualisiert: 11.01.2026 um 12:06 Uhr

MinIO: S3-Objektspeicher selbst hosten

MinIO ist ein S3-kompatibler Objektspeicher, den Sie auf eigener Infrastruktur betreiben können. Ideal für Backups, Medien-Dateien und Cloud-native Anwendungen.

Was ist Objektspeicher?

  • Speichert Dateien als "Objekte" mit Metadaten
  • Zugriff über HTTP-API
  • Unbegrenzt skalierbar
  • S3-kompatibel = funktioniert mit AWS-Tools

Installation

# Binary herunterladen
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

# Verzeichnis erstellen
sudo mkdir -p /data/minio
sudo chown $USER:$USER /data/minio

MinIO starten

# Einfacher Start
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=geheim123 minio server /data/minio --console-address ":9001"

# Als Service
sudo nano /etc/systemd/system/minio.service
[Unit]
Description=MinIO
After=network.target

[Service]
User=minio
Group=minio
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=geheimes_passwort_123"
ExecStart=/usr/local/bin/minio server /data/minio --console-address ":9001"
Restart=always

[Install]
WantedBy=multi-user.target
sudo useradd -r minio
sudo chown -R minio:minio /data/minio
sudo systemctl daemon-reload
sudo systemctl start minio
sudo systemctl enable minio

Docker-Installation

docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=geheim123 \
  -v /data/minio:/data \
  minio/minio server /data --console-address ":9001"

Zugriff

  • Console: http://SERVER:9001
  • API: http://SERVER:9000

MinIO Client (mc)

# Client installieren
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

# Alias erstellen
mc alias set myminio http://localhost:9000 admin geheim123

# Bucket erstellen
mc mb myminio/mein-bucket

# Datei hochladen
mc cp datei.txt myminio/mein-bucket/

# Dateien auflisten
mc ls myminio/mein-bucket/

# Datei herunterladen
mc cp myminio/mein-bucket/datei.txt ./

PHP-Integration (AWS SDK)

// composer require aws/aws-sdk-php
use Aws\S3\S3Client;

$s3 = new S3Client([
    'version' => 'latest',
    'region' => 'us-east-1',
    'endpoint' => 'http://localhost:9000',
    'use_path_style_endpoint' => true,
    'credentials' => [
        'key' => 'admin',
        'secret' => 'geheim123'
    ]
]);

// Upload
$s3->putObject([
    'Bucket' => 'mein-bucket',
    'Key' => 'bild.jpg',
    'Body' => fopen('/pfad/zu/bild.jpg', 'r')
]);

// Download
$result = $s3->getObject([
    'Bucket' => 'mein-bucket',
    'Key' => 'bild.jpg'
]);

file_put_contents('download.jpg', $result['Body']);

// Pre-signed URL (temporärer Zugang)
$cmd = $s3->getCommand('GetObject', [
    'Bucket' => 'mein-bucket',
    'Key' => 'bild.jpg'
]);
$request = $s3->createPresignedRequest($cmd, '+1 hour');
$url = (string) $request->getUri();

Node.js-Integration

// npm install @aws-sdk/client-s3
const { S3Client, PutObjectCommand } = require('@aws-sdk/client-s3');

const s3 = new S3Client({
    endpoint: 'http://localhost:9000',
    region: 'us-east-1',
    credentials: {
        accessKeyId: 'admin',
        secretAccessKey: 'geheim123'
    },
    forcePathStyle: true
});

// Upload
await s3.send(new PutObjectCommand({
    Bucket: 'mein-bucket',
    Key: 'datei.txt',
    Body: 'Inhalt der Datei'
}));

Nginx Reverse Proxy

server {
    listen 443 ssl;
    server_name s3.example.com;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        client_max_body_size 1000M;
    }
}

Anwendungsfälle

  • 📦 Backup-Storage
  • 🖼️ Medien-Dateien (Bilder, Videos)
  • 📊 Data Lake
  • 🔄 Terraform State
  • 📁 Nextcloud External Storage

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120