---
title: "Projekte in S3-Buckets"
description: "Bilder und Annotationen von Projekten in LumiScan Annotation Web in einem S3-Bucket ablegen: AWS S3, MinIO, SeaweedFS. Konfiguration, Rechte, Verhalten."
product: "LumiScan Annotation Web"
component: "lumiscan-annotation-web-de"
version: "2.3.0"
display_version: "2.3.0.0"
latest_version: false
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-annotation-web-de/2.3.0/projects-in-s3-buckets.html"
---

# Projekte in S3-Buckets – LumiScan Annotation Web

Statt in einem Ordner auf dem Server kann ein Projekt seine Dateien in einem S3-Bucket ablegen: AWS S3, MinIO, SeaweedFS oder jeder andere Speicher mit S3-Schnittstelle. Unterhalb des Präfixes des Projekts ist der Aufbau genau der eines Projektordners (Datumsordner, `<Bild>.png`, `.csv`, `.json`). Ein Ordner lässt sich also mit jedem S3-Werkzeug (`aws s3 sync`, `mc mirror`, …) in einen Bucket kopieren und zurück, und LumiScan Training liest dieselben Dateien.

## 1. Buckets konfigurieren

Der Server-Admin trägt die Buckets in die Konfiguration ein. Die Zugangsschlüssel bleiben in der Konfiguration; der Browser sieht nur den Namen.

```json
"s3_targets": [
  { "name": "aws-frankfurt", "endpoint": "https://s3.eu-central-1.amazonaws.com",
    "region": "eu-central-1", "bucket": "annotation-data", "path_style": false,
    "access_key_id": "AKIA...", "secret_access_key_file": "aws-annotation.secret" },
  { "name": "seaweedfs-lab", "endpoint": "https://s3.lab.example.com:8333", "bucket": "annotation",
    "path_style": true, "access_key_id": "annotation-server",
    "secret_access_key_file": "seaweedfs-annotation.secret", "ca_file": "root-ca.pem" }
]
```

| Schlüssel | Bedeutung |
| --- | --- |
| `name` | Wird Admins beim Anlegen eines Projekts angezeigt; Projekte verweisen darauf. Später nicht umbenennen. |
| `endpoint` | `https://s3.<Region>.amazonaws.com` (AWS), `http(s)://host:9000` (MinIO), `http(s)://host:8333` (SeaweedFS) |
| `region` | Die Region des Buckets bei AWS, z. B. `eu-central-1`; MinIO und SeaweedFS akzeptieren `us-east-1`. |
| `bucket` | Der Bucket; er muss existieren. |
| `path_style` | `true`: `endpoint/bucket/key` (MinIO, SeaweedFS; Standard). `false`: `bucket.endpoint/key` (AWS; nötig für Buckets in neueren Regionen). |
| `access_key_id`, `secret_access_key_file` | Die Schlüssel. `secret_access_key` direkt in der Datei geht auch, eine eigene, nur für das Dienstkonto lesbare Datei ist besser. Ohne Schlüssel werden `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` und `AWS_SESSION_TOKEN` aus der Umgebung verwendet. |
| `ca_file`, `tls_verify` | Eigene Zertifizierungsstelle für selbst signierte Zertifikate; `"tls_verify": false` nur für Tests. |
| `proxy` | `http://proxy:3128`, wenn der Server den Speicher nur über einen Proxy erreicht. |
| `cache_mb`, `cache_dir` | Lokaler Bildzwischenspeicher, Standard 2048 MB in `s3-cache/<Name>` neben der Konfiguration; `0` schaltet ihn ab. |
| `timeout_s` | Je Anfrage, Standard 30. |

## 2. Projekt in einem Bucket anlegen

Unter Ihrem Namen → **Projects** → **New project** (oder **Import project**) wählen Sie **Store the files in: S3 bucket …** und geben einen Ordner im Bucket an (das Präfix, z. B. `line-5`). Ein Bucket nimmt beliebig viele Projekte auf; die Präfixe zweier Projekte dürfen sich nicht überschneiden. Bilder, die schon unter dem Präfix liegen, werden verwendet, wie sie sind; ein Import braucht ein leeres Präfix.

## Verhalten

- Annotationsdateien werden immer aus dem Bucket gelesen und dorthin geschrieben, nie zwischengespeichert. Wurde eine Datei inzwischen im Bucket geändert (durch ein S3-Werkzeug oder einen anderen Server), wird das Speichern wie bei einem Ordner mit einem Konflikt abgelehnt, und die fremde Version bleibt im Verlauf.
- Bilder werden auf der Festplatte des Servers zwischengespeichert und bei jeder Anfrage mit dem Bucket abgeglichen: Geänderte Bilder werden neu geholt, unveränderte kosten eine kleine Anfrage.
- Datenbank, Sperren, Sitzungen und Sicherungen bleiben auf dem Server. Das Löschen eines Bucket-Projekts löscht nie etwas im Bucket.
- Fehlgeschlagene Anfragen (Netzwerk, `503 SlowDown`) werden wiederholt; Fehler werden mit dem Grund gemeldet, den S3 angibt (falscher Schlüssel, Uhrzeitabweichung, fehlender Bucket, falsche Region).

## Rechte bei AWS {#aws-permissions}

Der IAM-Benutzer oder die Rolle braucht:

- auf dem Bucket: `s3:ListBucket`,
- auf `arn:aws:s3:::<Bucket>/*`: `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject`.

Ohne `s3:ListBucket` beantwortet AWS fehlende Dateien mit 403 statt 404. Halten Sie die Uhr des Servers synchron: AWS lehnt Anfragen ab, die mehr als 15 Minuten abweichen.

## MinIO oder SeaweedFS?

Beide funktionieren für LumiScan Annotation Web gleich. Der Hersteller von MinIO veröffentlicht die Community-Edition seit Oktober 2025 nicht mehr als fertige Programme; bestehende Installationen laufen weiter. Für einen neuen selbst betriebenen Speicher ist SeaweedFS (Apache 2.0, aktiv gepflegt) die sicherere Wahl.
