OneDrive Simple Client - Es ist nicht einfach

    Jeder kennt den OneDrive-Dienst seit langem von Microsoft, einem Cloud-basierten Data Warehouse mit einer guten Webbenutzeroberfläche.

    Für ähnliche Dienste, insbesondere Dropbox, wurde eine Vielzahl von Add-Ons und Erweiterungen veröffentlicht, z. B. MacDropAny und viele andere. Da es für OneDrive nicht viele Erweiterungen gibt, wurde es zu einer Plattform für uns - und wir haben einen alternativen Client für OneDrive veröffentlicht - syncDriver.



    Es verfügt über die gesamte Funktionalität eines Standardclients von Microsoft und darüber hinaus über eine Reihe von Funktionen, für die es sinnvoll ist, ihn zu verwenden. Sie können es hier installieren . Unmittelbar nach der Installation werden Sie aufgefordert, eine Verbindung zum OneDrive-Dienst herzustellen.

    Anpassung


    Nach dem Herstellen der Verbindung können wir den Ordner für die Synchronisierung und die Modi konfigurieren.
    Die ersten Startmodi werden separat hervorgehoben: Beispielsweise können wir nur die Ordnerstruktur oder gar nichts herunterladen, und nach der Initialisierung werden alle Änderungen heruntergeladen.
    Zusätzlich können wir selektive Synchronisationsfilter und die Synchronisationsrichtung konfigurieren. Proxy-Einstellungen werden natürlich auch unterstützt, einschließlich der Authentifizierung.

    Alles, es funktioniert ...


    Nach dem Einrichten dauert es einige Zeit, OneDrive-Metadaten herunterzuladen und das lokale Dateisystem zu analysieren.
    Wenn das Konto eine große Datenmenge enthält, dauert das Herunterladen einige Zeit. Um diesen Prozess zu optimieren, können Sie die selektive Synchronisierung konfigurieren.
    Nach Abschluss der Synchronisierung werden alle Änderungen am Ordner im OneDrive-Konto angezeigt.

    Was kann


    Wenn Sie von Ihrem Computer aus einen beliebigen Ordner zu OneDrive hinzufügen müssen, können Sie in syncDriver Symlinks verwenden. Dies wird durch den Befehl Ordner verknüpfen (oder die Schaltfläche Hinzufügen im Hauptformular) implementiert.

    In syncDriver ist eine selektive Synchronisation möglich.
    Mit dem Befehl Selective Sync ... im Einstellungsfenster können Sie einen Ordner zur Synchronisierung hinzufügen / ausschließen: Alle danach vorgenommenen Änderungen werden nicht an OneDrive gesendet.

    Mit der Option für die Synchronisierungsrichtung können Sie sowohl in eine als auch in zwei Richtungen synchronisieren. Sie können jedoch nur festlegen, dass die Änderungen in OneDrive im Dateisystem angezeigt werden, ohne sie erneut in die OneDrive-Cloud hochzuladen.

    Eine einfache Möglichkeit, auf OneDrive zuzugreifen, besteht darin, dem Synchronisierungsordner einen Gerätebuchstaben zuzuweisen.

    In den Netzwerkeinstellungen kann der Proxyserver einen Benutzernamen und ein Kennwort angeben, mit denen der Standardclient nicht vertraut ist. Dies ist sehr praktisch, wenn Sie syncDriver in einer Organisation verwenden, in der das Internet nur über einen Proxy verteilt wird.

    Es funktioniert auf allen Windows-Versionen, die wir von XP bis 8.1 kennen. Wir werden weiterhin Windows 10 testen.

    Wie geht das?


    Um den Client unter verschiedenen Betriebssystemen zu unterstützen, wurde entschieden, .NET zu verwenden. Systemspezifische Fragmente (hauptsächlich Benutzeroberfläche und Arbeit mit Diensten / Daemons) werden in separaten Assemblys zugeordnet. Die aktuelle Version enthält UI auf Windows-Formularen, für Versionen für andere Plattformen wird Gtk # verwendet - diese Version wurde jedoch noch nicht in der Produktion freigegeben.
    Für die Anmeldung im System haben wir NLog gewählt - es funktioniert schnell und ist extrem einfach zu konfigurieren.
    Für die modulare SOA haben wir unser Framework Context.NET implementiert, das auf github verfügbar ist .

    Wie funktioniert das?


    syncDriver besteht aus zwei Teilen: Service und Client (UI). Sie kommunizieren über JSON-Pakete, die über eine Netzwerkverbindung gesendet werden.
    Darüber hinaus werden alle Diensteinstellungen in der .config-Datei beschrieben, die über die Client-Benutzeroberfläche konfiguriert wird.
    Die Clientsynchronisierung dient dazu, das lokale Dateisystem vom Dateisystem in der Cloud zu isolieren. Jedes der Dateisysteme wird als Abstraktion implementiert, wodurch die Probleme der Überwachung, Indizierung und Anwendung von Änderungen unabhängig voneinander gelöst werden. Dies bedeutet, dass die OneDrive-Ebene nichts über das lokale Dateisystem weiß und umgekehrt.

    Der gesamte Synchronisierungsprozess erfolgt gemäß dem folgenden Szenario:
    - Jedes Dateisystem führt eine vollständige Indizierung der Ressource durch und speichert sie in einer lokalen Datenbank
    - Das Dateisystem ist für das Erkennen von Änderungen und das Weiterleiten der Nachricht an die Warteschlange verantwortlich.
    - Die Nachrichten in der Warteschlange werden in einer strengen Reihenfolge verarbeitet, mit Ausnahme von Sonderfällen, die später behandelt werden.
    - Im Fehlerfall warten wir auf den Abschluss aller parallelen Operationen und führen sie erneut aus. Wenn der Fehler erneut auftritt, wird er aufgezeichnet und auf der Benutzeroberfläche ausgegeben.

    Das lokale Dateisystem überwacht Änderungen über FileSystemWatcher. Zusätzlich gibt es eine vollständige Baumdurchquerung mit einem bestimmten Intervall, dies garantiert uns den Erhalt von Änderungen, die vorgenommen wurden, als der Client nicht gestartet wurde.

    Das Abrufen der OneDrive-Dateisystemstruktur wird über mehrere APIs implementiert, die uns Informationen darüber geben, was sich beim Vergleich mit der lokalen Datenbank geändert hat.

    Der Hauptaspekt der Synchronisation ist die Tatsache, dass während des Synchronisationsprozesses zwei Dateisysteme nicht verglichen werden und das Dateisystem mit seiner vorherigen Version aus der Datenbank verglichen wird. Dies ermöglicht uns, in eine Richtung zu synchronisieren.

    Das Umbenennen und Verschieben wird in der Synchronisierungswarteschlange separat behandelt. Wenn wir zum Beispiel einen Ordner mit einer großen Anzahl von Dateien erstellt und dann umbenannt haben, erfolgt die Umbenennung zuerst und alle Nachrichten in der Warteschlange werden entsprechend umbenannt, dh, wir laden die Dateien bereits in den umbenannten oder verschobenen Ordner hoch.
    Im Falle einer in Konflikt stehenden Dateiänderung auf beiden Seiten wird eine zusätzliche Kopie der Datei mit dem Suffix (1), (2) usw. erstellt. Eine automatische Konfliktlösung ist möglicherweise eine Option für zukünftige Versionen.

    Die Probleme


    Die meisten Probleme waren mit der Verarbeitung von Ereignissen aus dem Dateisystem verbunden:
    - Beim Kopieren einer großen Datei erhalten wir eine große Anzahl von Ereignissen, von denen jedes noch einmal überprüft werden muss, ob der Kopiervorgang beendet wurde oder nicht.
    - Beim Speichern einer Datei erstellen eine Reihe von Anwendungen eine temporäre Datei und benennen sie dann in die Zieldatei um.
    - Wenn Sie versuchen, das Bild direkt in Windows Explorer zu drehen, tritt eine Reihe von Ereignissen auf: Erstellen einer neuen temporären Datei, Ersetzen der vorherigen Datei, Löschen der temporären Datei (im Unterschied zum vorherigen Absatz wird die temporäre Datei nicht umbenannt, sondern kopiert).

    Inzwischen sind die meisten Probleme behoben und die Version ist seit dem Wechsel zu OneDrive mit SkyDrive ziemlich stabil.

    Warum?


    Unser Ziel war es, Ihnen eine einfache, stabile Version des Clients für einen bekannten Service von MS anzubieten. Darüber hinaus planen wir die Veröffentlichung einer portablen Version unseres Produkts.
    Parallel dazu entwickeln wir eine Version für Linux.
    Aber warum?
    Jetzt kommen Benutzer zu uns, um die folgenden Probleme zu lösen (in der Reihenfolge ihrer Priorität):
    - Arbeiten unter Windows 8.1 mit einem lokalen Konto
    - Arbeiten unter Windows XP
    - Verwenden von Symlinks
    - Verwenden von Netzwerklaufwerken
    - Durcharbeiten eines Proxys mit Autorisierung
    und einer Reihe anderer Funktionen.

    Und vor allem möchten wir in den Kommentaren hören, welche Features für Sie am interessantesten sind.

    Jetzt auch beliebt: