3.8 KiB
Speicherwerkzeug für den betreuten Pilotbetrieb
AWS SDK 3.962.0 entspricht dem bei Entwicklung vorliegenden Backend-Lockfile.
Der konkrete Ablauf auf einer Instanz steht in
docs/minio-umstellung-pilot.md.
Lokaler Test (Linux amd64, Docker, Node 22):
npm ci --prefix scripts/storage
npm test --prefix scripts/storage
docker pull chrislusf/seaweedfs:4.47@sha256:ce9e796f1fe6f06968f4c04bdaf8f678dad9c8acdfef3d244133d71bfa6bf882
docker build -f scripts/storage/Dockerfile.seaweedfs -t fedeo-seaweedfs:4.47-fedeo.1 scripts/storage
docker build -f scripts/storage/tests/Dockerfile.minio -t fedeo-minio-fixture:2025-09-07 scripts/storage/tests
docker build -t fedeo-storage-tools:pilot scripts/storage
node scripts/storage/tests/integration.mjs
python3 -B scripts/storage/tests/host_integration.py
docker pull registry:2
python3 -B scripts/update/tests/host_storage_integration.py
Der S3-Test verwendet ausschließlich neu angelegte Testcontainer mit künstlichen
Daten. Er prüft über 1.000 Objekte, Pagination, eine 1-GiB-Datei, leere Dateien,
Sonderzeichen, Metadaten, SigV4, 24-Stunden-Links, Streaming, verbotene Zugriffe,
beschädigte Zielobjekte, erneute Kopie und echten Restore in ein frisches
Verzeichnis. Die gesicherten Testdaten bleiben unter /tmp/fedeo-storage-*
zur Prüfung erhalten; die Testcontainer werden entfernt.
Der Host-Test verwendet einen echten PostgreSQL-/MinIO-/SeaweedFS-Stack und künstliche Anwendungscontainer. Er ersetzt keine fachliche Abnahme von FEDEO (PDF, WebDAV, Exporte, Mandantenrechte) auf der konkreten Instanz.
Der zusätzliche Updater-Test führt Migration, geprüfte Übernahme, zwei Updates
und Restore aus der regulären Updatesicherung aus. Er startet eine eigene lokale
Testregistry. Release-HTTP und öffentliche Versionsantworten sind Testdaten;
Docker Compose, Image-Registry, PostgreSQL, S3-Verträge und Restore sind echt.
Das neue Pilotpaket enthält auch die zusammengehörigen Host-Updater-Dateien.
Nach erfolgreicher Migration übernimmt pilot.py adopt-updater den Speicher;
bereits umgestellte Instanzen werden dafür nicht erneut migriert.
Die erste Übernahme ist auf 200.000 Objekte und 1 GiB pro Objekt begrenzt. Das größte Objekt wird auf Platte gespult; RAM-Verbrauch wächst nicht mit dessen Größe. Multipart-Übernahmen und Sonderkonfigurationen werden abgelehnt.
SeaweedFS 4.47 bewahrt bei SDK-Streaming mit automatischen Prüfsummen teilweise
Content-Encoding: aws-chunked auf. Der Kopierer setzt einen vorher berechneten
SHA-256-Checksum-Header. Die Pilot-Anwendung erhält
AWS_REQUEST_CHECKSUM_CALCULATION=WHEN_REQUIRED; der Vertragstest prüft diese
Einstellung mit leeren und nicht leeren Streams. SigV4 bleibt aktiv.
Das Pilotimage 4.47-fedeo.1 korrigiert SeaweedFS' Normalisierung expliziter
S3-MIME-Typen. application/octet-stream muss auch für .pdf erhalten bleiben.
Der Dockerfile pinnt Herstellerquelle, Buildimage und Laufzeitbasis; der beigefügte
Patch umfasst die Korrektur und Go-Tests für alle drei Schreibpfade. Der S3-Test
prüft HEAD/GET, Kopie und Restore einschließlich dieses Falls. Das ungeänderte
Herstellerimage wird vom neuen Vertragstest gezielt abgewiesen. Bei Folgeupdates
die Korrektur beibehalten oder deren Übernahme durch den Hersteller nachweisen.
SeaweedFS-Herkunft: Release 4.47, betroffene Normalisierung. Das isolierte MinIO-Testimage verwendet das offizielle, per SHA-256 verifizierte Release-Binary, da die früheren Containerreferenzen nicht mehr abrufbar sind. Es wird nicht im Pilotpaket mitgeliefert und nicht über Kundendaten gestartet.