Work in progress: django-imagekit but for all types of media files (movies, PDFs etc.). + private media
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

95 lines
2.6 KiB

Hauptsächlich ist es ein mediakit;
d.h. imagekit erweitert auf alle arten von dateien (letztendlich inkl. document),
das eine grundsätzliche struktur bietet
1. für automatische konvertierung in jeweils andere formate
denkbar eben auch bild -> pdf, film -> bild etc., pdf -> epub
conversion-quere mit celery
klarer state "noch nicht konvertiert"
2. klare dateisystemverwaltung der originaldateien + automatische / manuelle konvertierungen
manuelle konvertierung heißt: die automatische konvertierung kann jederzeit überschrieben werden
3. zugriffskontrolle:
grundsätzlich ist keine datei öffentlich zugänglich,
specs können mit zugriffskontrolle (anonym etc.) zugänglich gemacht werden,
dazu wird x-sendfile u.ä. verwendet
4. benennung:
öffentlich zugänglich sollten alle dateien über generierte
namen sein, also slug + konvertierungstyp, so dass heruntergeladene dateien sinnvoll benannt sind
5. umgang mit mehrseitigen dokumenten, also
mehrseitige PDF-dokument in bilder zu verwandeln
über spezial-descriptor, der page_count und page[index] zurückgeben kann?
dann auch jeweils alle seiten im cache ablegen?
6. jeder asset bekommt eine eindeutige globale uuid, für interoperabilität mit z.b. iiif
7. chunk upload
8. batch upload
imagekit
processors
pilkit-processors
neue processors:
movie
pdf
assure conversion processors:
assure_image
schaut, wie die ursprungsdatei (z.b. film, pdf) in ein bild konvertiert werden muss
brauche async-processors
die also zwangsläufig die konvertierung an einen anderen prozess auslagern (ffmpeg),
und darüber aber bescheid wissen;
vermutlich ist es richtig, ein lock-file zu schreiben mit z.b. eine pid; oder evtl. einem celery-task-id
cachefiles
Cachefile ist gleich konvertierte Datei;
Cachefile sollte auch immer das manual-pedant verwalten/checken;
s.a. CacheFileState:
MANUAL_OVERRIDE
cachefile backend schreiben, dass unsere dateisystemlayout implementiert
zugriffskontrolle
möglichst über extra modul realisieren;
permissions als zusätzl. config, nicht integriert in specs
zugriffspfad über urls.py/views
d.h. mediakit selbst liefert alles direkt aus dem filesystem aus
außer: originaldateien; diese sollten immer abseits gespeichert werden, damit alles öffentlich mindestens durch specs kontrollierbar ist
brauche eigene ImageKitConf
SourceGroup?
MovieSpec
PDFSpec
TextDocumentSpec
better: MarkupSpec?
TextFormatSpec?
html
doc
docx
odt
epub
markdown
rst
Admin/Upload per Rest-Interface,
aufwendigem Widget
d.h. in Django-Struktur ist nur das original_file-Feld