0

Ein Kunde von uns hat angefordert, dass wir Kopien seiner Dateien sowohl auf AWS S3 als auch auf OneDrive haben.Transfer von AWS S3 zu OneDrive mit AWS Lambda

Die übliche MO: Datei wird von einer iOS-Anwendung an einen AWS S3 Bucket gesendet. Dies löst eine AWS Lambda-Funktion aus, die die Datei an eine E-Mail anfügt und eine Kopie an den Client sendet, die sie wiederum unter OneDrive speichert. Jetzt möchten wir den E-Mail-Teil überspringen und die Datei direkt an OneDrive übertragen.

Alle meine Forschung so weit Punkte zu Zapier oder CloudRail oder MS Graph REST Api. Das Problem, das ich habe, ist, dass wir die Datei mit einer AWS Lambda-Funktion (Java8) automatisch übertragen möchten. Fast alle Tutorials und Beispiele unter MS Graph benötigen einen Client, um sich manuell anzumelden. Meist clientseitige Logik. Die anderen Methoden haben mehr Overhead und wir wollen (unnötigerweise) unseren Stack nicht komplizierter machen, als es bereits ist.

Ich weiß, dies ist ein sehr spezifischer Fall. Wir ersetzen systematisch das Dateiverwaltungssystem des Kunden, ohne den laufenden Betrieb zu sehr zu stören.

Alle schlüssigen Hinweise/Beispiele/Tutorials, um dies getan Server-Seite würde sehr geschätzt werden.

Antwort

0

Ich bin mir nicht sicher, wie gut S3 mit OneDrive übereinstimmt, sie sind ziemlich unterschiedliche Modelle. OneDrive wird von einem Benutzer bereitgestellt, der die Frage stellt, zu welchem ​​Benutzer Sie diese Datei auch kopieren möchten. Ich würde denken, Azure Storage wäre eine viel bessere Passform, da es ein ähnliches Modell zu S3 verwendet.

Sie können Microsoft Graph API verwenden, um die Datei auf OneDrive eines Benutzers hochzuladen. Sie benötigen authenticate the user, um ein Zugriffs- und Aktualisierungstoken zu erhalten. Sobald dieser Vorgang abgeschlossen ist, können Sie das Refresh Token speichern und bei Bedarf ein aktualisiertes Access Token abrufen.

1

Auch mit CloudRail ist es erforderlich, den Benutzer zu authentifizieren, aber es gibt Methoden zum Speichern und Verwenden eines Zugriffstokens.

Die Dienste verfügen über zwei Methoden, loadAsString und saveAsString, und sie werden zum Speichern und Laden von Anmeldeinformationen verwendet. Sie könnten loadAsString mit Ihrem Zugriffstoken aufrufen, die Zeichenfolge kann sich von Dienst zu Dienst unterscheiden, sieht aber in etwa so aus: [{"access_token": "IHR ZUGRIFF TOKEN"}]