-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Martin Schmitt edited this page Jan 6, 2023
·
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
- 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_APIKEY
statt-a/--apikey
-
$GMI_DOCTYPE
statt-d/--doctype
-
$GMI_DOCNOTE
statt-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 sucht über gmi-putdir.{timer,service} alle 5 Minuten nach neuen Dateien, und übergibt sie an gmi-upload.
- Go 1.19
- Bash
- Warum nicht per Mail?
- Mail ist kein Filetransferprotokoll und erlaubt es nicht, den Uploadstatus zu dokumentieren.
- Wer konsumiert welche Umgebungsvariable?
- Gesetzt werden sie alle in /etc/default/gmi-putdir.
- In den Kontext der Ausführung von gmi-putdir kommen sie über gmi-putdir.service
- In den Kontext der Ausführung von gmi-upload kommen sie über gmi-putdir (das Script)
-
$GMI_PUTDIR
wird direkt von gmi-putdir.service als Variable eingesetzt beim Aufruf vongmi-putdir "${GMI_PUTDIR}"
-
$GMI_MOVETO
wird in gmi-putdir ausgewertet, um Dokumente nach erfolgreichem Upload zu verschieben. -
$GMI_APIKEY
und$GMI_DOCTYPE
kommen über gmi-putdir.service und gmi-putdir in die Umgebung von gmi-upload.
- Wann Windows?
- gmi-upload funktioniert unter Windows, die restliche Integration, insbesondere in Form von gmi-putdir, fehlt derzeit.
- Binären Download anbieten
- Use of environment variables /etc/default/gmi-putdir -> systemd -> gmi-putdir -> gmi-upload considered too complicated.
- gmi-putdir evtl. zwecks Windows-Kompatibilität in go reimplementieren.
- Andere Fehlerbehandlung (erneut versuchen) für transiente Fehler:
- HTTP 403 / Code 429 / Rate limit
- HTTP 422 / Code 105 / Rate limit
- HTTP 503