Start robuster: Problembilder verhindern die Umstellung nicht
- Migration Schritt 2: Lese-/Schreibfehler (z. B. Dateirechte) und kaputte Bilder werden protokolliert und übersprungen, statt den Serverstart abzubrechen - bilder.py: alle Pillow-Fehler werden zu einer Eingabe-Fehlermeldung bzw. "keine Metadaten" statt zu Fehler 500 - Test mit schreibgeschütztem und kaputtem Bild Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bb20135876
commit
a1a1998d1e
3 files changed
+25
-8
No files matched your search
@@ -23,7 +23,7 @@ def hat_metadaten(data: bytes) -> bool:
|
||||
with Image.open(io.BytesIO(data)) as img:
|
||||
return bool(img.getexif()) or any(k in img.info for k in ("xmp", "XML:com.adobe.xmp", "comment", "exif")) \
|
||||
or bool(getattr(img, "text", None))
|
||||
except (OSError, ValueError, Image.DecompressionBombError):
|
||||
except Exception: # kaputte oder exotische Datei: als "ohne Metadaten" behandeln
|
||||
return False
|
||||
|
||||
|
||||
@@ -50,5 +50,5 @@ def ohne_metadaten(data: bytes, ext: str) -> bytes:
|
||||
else:
|
||||
img.save(out, "WEBP", quality=90, icc_profile=icc)
|
||||
return out.getvalue()
|
||||
except (OSError, ValueError, Image.DecompressionBombError):
|
||||
except Exception: # Pillow wirft je nach Format verschiedene Fehler
|
||||
raise ValidationError("Das Bild konnte nicht gelesen werden oder ist zu groß.")
|
||||
Reference in new issue
Block a user