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.
96 lines
2.6 KiB
96 lines
2.6 KiB
9 years ago
|
|
||
|
|
||
|
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
|
||
|
|
||
|
|
||
|
|