fix(storage): preserve explicit S3 MIME types in SeaweedFS

This commit is contained in:
2026-09-28 14:34:30 +02:00
parent a3f4a7c004
commit 790f20b499
8 changed files with 142 additions and 8 deletions

View File

@@ -10,6 +10,7 @@ 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
@@ -37,7 +38,16 @@ 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.
SeaweedFS-Herkunft: [Release 4.47](https://github.com/seaweedfs/seaweedfs/releases/tag/4.47).
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