S3-Objektspeicher als Backup oder Zwischenspeicher für Schnittstellen-Projekte

Ein praktisches Beispiel, wie Sie S3-Speicher als Backup für PDF-Rechnungsbelege DSGVO-konform einsetzen können.

S3-Objektspeicher als Backup oder Zwischenspeicher für Schnittstellen-Projekte

In diesem Beitrag wollen wir am praktischen Beispiel zeigen, wie man Synesty an einen S3-Speicher andockt, um Dateibackups bei einem Schnittstellenprojekt / Integration abzulegen.

Wir fokussieren uns dabei auf S3-Speicherplatzlösungen, die explizit Datenspeicherung in Deutschland anbieten. Das ist im Kontext von Synesty aus Datenschutzgründen / DSGVO wichtig, weil viele Kunden personenbezogene Daten (sog. PII Data) verarbeiten, wie z.B. Bestellungen aus Onlineshops und Marktplätzen.

Was ist S3 Objektspeicher / Object Storage?

S3 wurde ursprünglich von Amazon AWS ins Leben gerufen und bietet mit der S3-API eine Programmierschnittstelle, mit der Anwendungen Daten in einem S3-Objektspeicher speichern und herunterladen können. Objektspeicher heißt es deshalb, weil zusätzlich zum eigentlichen Dateiinhalt auch noch ein eindeutiger Bezeichner (z.B. eine UUID) und individuelle Metadaten gespeichert werden können. Ein Unterschied von Objektspeichern im Gegensatz zu Dateispeichern (z.B. via FTP) ist, dass es keine hierarchischen Ordnerstrukturen gibt. Stattdessen ist es eine flache Struktur, die nur einen eindeutigen Identifier pro Objekt (Datei) braucht.

Vorteile von S3 Speicherlösungen

  • Sicherheit: Datenübertragung per SSL / HTTPS und oft auch optionale Verschlüsselung beim S3-Anbieter (Data at Rest). Im Vergleich zum unsicheren FTP-Protokoll ein großer Pluspunkt
  • oft sehr kostengünstig für große Datenmengen
  • Erstellung von zeitlich begrenzten URLs / Links, die nach einer bestimmten Zeit verfallen. Das wird vom S3Upload Step unterstützt.
  • Lifecylcle-Features: Die S3-Dienste bieten oft Regeln anzulegen wie z.B. Automatische Löschung aller Daten, die älter als X Tage / Stunden sind.
  • Datei-Versionierung: einige S3-Speicher unterstützen Funktionen, wo jeder Änderung einer hochgeladenen Datei aufbewahrt wird. Dadurch wird eine Änderungshistorie von Dateien möglich
  • Möglichkeit des Hostings von statischen Webseiten und Dateien

Wofür eignet sich externer S3-Speicherplatz im Kontext von Schnittstellen, Integration und Automatisierung?

Wenn Sie automatisierte Prozesse mit Synesty bauen, dann werden oft Dateien mit anderen Systemen ausgetauscht. Damit das klappt, müssen Dateien irgendwo extern (d.h. außerhalb von Synesty) abgelegt werden, damit Synesty oder ein anderes System darauf zugreifen kann. Klassischerweise kommt dabei oft ein FTP-Server oder auch die sichere Variante SFTP oder FTPS zum Einsatz. Oder andere Kunden setzen auf Dienste wie Google Drive, Dropbox oder Microsoft OneDrive. S3 ist eine weitere Möglichkeit, große Datenmengen dateibasiert abzulegen.

S3 Speicherplatz eignet sich gut als zusätzlicher Backup-Speicherplatz, auf den Sie alle in Flows verarbeiteten Dateien kopieren, sodass Sie zu jeder Zeit eine Historie dieser Dateien haben. Einige Beispiele sind:

  • Backup von Rechnungen oder PDF-Belegen aus Shop-Systemen
  • zwischenspeichern von temporären Dateien einer Flow-Ausführung z.B. zur Fehlersuche / Debugging über einen bestimmten Zeitraum
  • versenden von Dateien per zeitlich begrenztem 1-mal Link
  • Aufbewahrung von Produktdaten von Lieferanten z.B. zum Nachweis von Fehlern (Beispiel: Lieferant schickt Bestand oder Preis von 0, behauptet aber das Gegenteil)
  • Im E-Commerce-Kontext ist die S3-Hosting-Möglichkeit nützlich, um Datenfeeds mit Produktdaten für Preisportale oder Ads-Kampagnen öffentlich erreichbar abzulegen, damit diese von extern heruntergeladen werden können

Praktische Anwendung am Beispiel Gridscale.io

Mittlerweile gibt es einige weitere Hostinganbieter, die auch S3 Speicherplatz im Programm haben und eine S3-API-kompatible Schnittstelle anbieten.

Der Vorteil: Speicherlösungen, die mit der S3-API kompatibel sind, können auf die gleiche Weise angesprochen werden. Dadurch funktioniert auch das Synesty Add-On mit vielen anderen Anbietern, obwohl es ursprünglich für Amazon S3 entwickelt wurde.

In diesem Beitrag wollen wir am Beispiel des Kölner Anbieters gridscale.io zeigen, wie man mit Synesty Daten auf S3-Speicher abspeichern kann. Das Beispiel-Szenario ist ein Backup von PDF-Rechnungen auf S3-Speicher, die wir uns aus dem Dienst Getmyinvoices per Add-On herunterladen.

Das finale Ergebnis sieht so aus:

  • Ein Flow,
  • der Rechnungsbelege vom Monat Oktober
  • von Getmyinvoices herunterlädt
  • und wieder zu S3 hochlädt.

Account anlegen

Dazu registrieren wir uns einen kostenlosen Account bei gridscale.io. Den S3-Speicher finden wir dann unter Storage / Object Storage

Wir erstellen einen Bucket (das ist wie ein großer Ordner für unsere Dateien), den wir s3-demo nennen.

Danach erstellen wir einen Access-Key. Das sind die Zugangsdaten, die wir brauchen, um mit der API auf diesen Bucket zuzugreifen. Wir erhalten einen Access-Key und einen Secret-Key.

Synesty einrichten

Zurück in Synesty Studio, erstellen wir einen Test-Flow. Dieser Test-Flow erzeugt eine einfache Testdatei (mit dem Step StringToFile) und lädt diese mit dem Step S3Upload zu S3 hoch. Dazu tragen wir unsere zuvor geholten Zugangsdaten ein, indem wir einen Account anlegen.

Zusätzlich geben wir dort den Endpoint an. Das ist der wichtige Teil: Damit bestimmen wir, zu welchem Dienst (API) wir uns eigentlich verbinden. Für die gridscale-Server in Frankfurt ist das https://gos3.io, was man hier nachlesen kann. Der Verbindungstest sagt, dass die Verbindung erfolgreich hergestellt werden konnte und dass wir Zugriff auf den s3-demo Bucket haben.

Damit ist unser Test-Flow fast fertig. Wir geben noch den Bucket an (s3-demo), in den wir unsere Testdatei hochladen wollen und drücken auf Flow ausführen.

Im S3-Buck bei gridscale sehen wir die hochgeladene Testdatei.

Auf zwei Optionen des S3Upload Steps soll hier auch noch eingegangen werden:

  • makeFileDownloadable: Wenn diese Option auf "Ja" gesetzt ist und die Datei mit einem Browser von S3 heruntergeladen wird, zeigt der Browser einen Download-Dialog an, anstatt die Datei direkt im Browser zu öffnen.
  • presignedUrlValidityInMinutes: Damit können wir einen zeitlich begrenzten Link der Datei erstellen.

Vor allem die Option presignedUrlValidityInMinutes ist interessant. Damit kann man z.B. jemanden die Links zu den hochgeladenen Dateien schicken, aber dieser Link verfällt nach 5 Minuten. Das ist aus Sicherheitsgründen sehr wertvoll, da man sensible Daten leicht mit anderen teilen kann, ohne aber aufwändig Zugangsdaten einzurichten. Der Link ist ermöglicht den Zugriff nur für ein kurzes Zeitfenster. Danach ist kein Zugriff mehr möglich.

Da wir nun die Übertragung erfolgreich getestet haben, können wir den Test-Flow so umbauen, dass wir unsere PDF-Rechnungen von Getmyinvoices auf dem S3-Speicher sichern können.

Vorlage zum ausprobieren

Die Beispiele aus dem Beitrag können als Vorlage installiert, ausprobiert und für eigene Zwecke angepasst werden.

Einige weitere S3 Anbieter mit Datenzentrum in Deutschland

Das ist eine kleine Auswahl, ohne Anspruch auf Vollständigkeit. Es gibt noch weitere Hosting Anbieter die auch S3 Object Storage im Angebot haben, oder ermöglichen, dass man über z.B. Nextcloud oder Owncloud, seinen eigenen Object Storage aufbaut.

Weitere Informationen

Unser Whitepaper für Macher: No Code Integration & Automatisierung

Verwandte Beiträge


Aktualisiert am October 23, 2022
Chatten Sie mit uns