55 lines
3.2 KiB
Markdown
55 lines
3.2 KiB
Markdown
# 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`](../../docs/minio-umstellung-pilot.md).
|
|
|
|
Lokaler Test (Linux amd64, Docker, Node 22):
|
|
|
|
```sh
|
|
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
|
|
```
|
|
|
|
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.
|
|
|
|
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](https://github.com/seaweedfs/seaweedfs/releases/tag/4.47),
|
|
[betroffene Normalisierung](https://github.com/seaweedfs/seaweedfs/blob/c5073360007d28385a33426a42ac3e4ec504c5a3/weed/filer/filerstore_wrapper.go).
|
|
Das isolierte MinIO-Testimage verwendet das offizielle, per SHA-256 verifizierte
|
|
[Release-Binary](https://github.com/minio/minio/releases/tag/RELEASE.2025-09-07T16-13-09Z),
|
|
da die früheren Containerreferenzen nicht mehr abrufbar sind. Es wird nicht im
|
|
Pilotpaket mitgeliefert und nicht über Kundendaten gestartet.
|