feat(media): storage for images and audio in notes (M1)
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m4s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m4s
- Table media (migration 5), files in $DATA_DIR/media/<docId>/.
- POST /documents/{id}/media (write access), POST .../media/fetch copies an
external https image (SSRF-guarded, not in the demo), GET /media/{id}
with range requests for readers of a note that shows the file.
- Format detected from the content (no SVG); own sandbox CSP on answers.
- Blocks point to files through their content (media:<id>), so the note
sync needs no change; compaction removes files no block mentions any
more after a day. Demo reset and demo start clear the folder.
- Limits MEDIA_MAX_IMAGE_MB, MEDIA_MAX_AUDIO_MB, MEDIA_QUOTA_MB,
MEDIA_DEMO_MAX_MB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e385a44fb9
commit
177fa49363
16 files changed
+637
No files matched your search
@@ -81,6 +81,19 @@ LEGAL_PRIVACY_CONTENT=
|
||||
LEGAL_IMPRINT_CONTENT_FILE=
|
||||
LEGAL_PRIVACY_CONTENT_FILE=
|
||||
|
||||
# ─── Bilder und Audio in Notizen ───────────────────────────────────────────────────────────────────
|
||||
# Dateien liegen in data/media/ und sind nur für Personen sichtbar, die die Notiz lesen dürfen. Nicht mehr
|
||||
# verwendete Dateien räumt MindSift nach einem Tag selbst weg.
|
||||
|
||||
# Größtes Bild in MB (der Browser verkleinert Fotos vorher auf höchstens 2048 Pixel).
|
||||
MEDIA_MAX_IMAGE_MB=15
|
||||
# Größte Audiodatei in MB (Sprachnotiz oder hochgeladene Datei).
|
||||
MEDIA_MAX_AUDIO_MB=50
|
||||
# Speicherplatz für Medien pro Person in MB; 0 = unbegrenzt.
|
||||
MEDIA_QUOTA_MB=0
|
||||
# Nur in der Demo: größte Datei in MB (Dateien verschwinden beim Demo-Reset).
|
||||
MEDIA_DEMO_MAX_MB=3
|
||||
|
||||
# ─── Spracherkennung (optional) ────────────────────────────────────────────────────────────────────
|
||||
# Ohne STT_URL nutzt MindSift die Spracherkennung des Browsers (Chrome, Edge, Safari; die Aufnahme geht
|
||||
# dabei an Google, Microsoft bzw. Apple). Mit eigenem Whisper-Server bleibt alles auf deinem Server und
|
||||
|
||||
Reference in new issue
Block a user