Skip to content
Martin Schmitt edited this page Dec 24, 2022 · 14 revisions

putmybills

Bei putmybills handelt es sich um einen Uploader für das Dokumentenmanagement von GetMyInvoices.com.

Komponenten

  • 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.)

Integration

  • gmi-upload akzeptiert die folgenden Optionen auch als Umgebungsvariablen:
    • $GMI_APIKEY statt -a/--apikey
    • $GMI_DOCTYPE statt -d/--doctype
    • $GMI_DOCNOTE statt -n/--docnote

Anwendungsbeispiel

  • 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.

Kompatibilität

Siehe auch

FAQ

  • 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 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
  • Wann Windows?
    • Gegen Windows-Support spricht nur wenig; es müsste lediglich von den UNIX-Attributen auf NTFS abstrahiert werden.

FIXME/TODO

  • 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

Clone this wiki locally