-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Martin Schmitt edited this page Dec 24, 2022
·
14 revisions
Bei putmybills handelt es sich um einen Uploader für das Dokumentenmanagement von GetMyInvoices.com.
- cmd/gmi-upload - Die Kernkomponente, die nichts anderes kann als einzelne Dokumente hochladen
- cmd/gmi-stat - Hilfsprogramm, um den in den extended Attributes gespeicherten Upload-Status von Dateien abzufragen
- assets/gmi-putdir - Wrapper für gmi-upload, um ein ganzes Verzeichnis voller Dateien hochzuladen
- init/gmi-putdir.{service,timer} - Systemd-Timer um automatische Uploads zu steuern
- init/gmi-putdir.example-default - Konfigurationsdatei für den genannten Timer, kommt nach /etc/default/gmi-putdir
- Makefile - Makefile zum Übersetzen und Installieren der Komponenten. (Der systemd-Timer wird dabei nicht automatisch aktiviert.)
-
gmi-upload akzeptiert die folgenden Optionen auch als Umgebungsvariablen:
-
$GMI_APIKEYstatt-a/--apikey -
$GMI_DOCTYPEstatt-d/--doctype -
$GMI_DOCNOTEstatt-n/--docnote
-
- Wir haben zwei Scanner, die nur Mail und Ablage per Samba können.
- Diese legen die PDFs auf ein Samba-Share.
- gmi-putdir.{timer,service} sucht alle 5 Minuten nach neuen Dateien, und übergibt sie an gmi-upload.
- Go 1.19
- Bash
- UNIX-Dateisystem mit Unterstützung für extended Attributes
- Warum nicht per Mail?
- Mail ist kein Filetransferprotokoll und erlaubt es nicht, den Uploadstatus genau zu erfassen.
- Warum Extended Attributes?
- Keine unterstützende Infrastruktur erforderlich (Datenbank, sqlite, Filialdateien o.ä.)
- Keine Datei- und Pfadnamen (oder andere Attribute wie z.B. Prüfsummen) die in einer Datenbank gespeichert werden müssen
- Uploadstatus ist direkt mit der Datei verbunden
- Sah wie ne gute Idee aus, fliegt aber mangels Eignung für Backup und Restore und mangelnder Cross-Plattform-Kompatibilität vorm Release wieder raus.
- Wann Windows?
- Sobald keine xattrs mehr benutzt werden.
- Alternative für xattrs finden.
- gmi-putdir wird, wenn es auf ein korruptes PDF trifft, immer wieder versuchen, es erneut hochzuladen. -> Antwort vom API auswerten und zusätzliches xattr für explizit abgelehnte Dokumente einführen. (Spielt in der Praxis vermutlich (d.h.: hoffentlich) keine Rolle.)
- Binären Download anbieten