Frage

Ich habe Suche wurde auf der DropBox Mac-Client und ich bin derzeit untersucht, eine ähnliche Schnittstelle für einen anderen Dienst zu implementieren.

Wie genau sie eine Schnittstelle mit Finder so? Ich bezweifle sehr, diese Objekte in dem Ordner dargestellt werden, auf jeder Last tatsächliche Dokumente heruntergeladen? Sie müssen dynamisch herunterladen, wie sie benötigt werden. Also, wie können Sie diese Elemente in Finder angezeigt werden, ohne dass tatsächlich Dateisystemobjekte zu haben?

Wer weiß, wie dies in Mac OS X erreicht wird?

oder jeder Zeiger des Apple-API oder andere Open-Source-Projekte, die eine ähnliche Integration mit Finder haben?

War es hilfreich?

Lösung

Zwei Vorschläge:

Der ehemalige ermöglicht es Ihnen, eine App zu schreiben, die als Dateisystem erscheint und tut die richtigen Dinge; Letztere ermöglicht es Ihnen, alles serverseitige und lassen den Benutzer einfach montieren Ihren Dienst als eine Dateifreigabe.

bewegen

Andere Tipps

Dropbox ist nicht entweder durch MacFUSE oder WebDAV angetrieben, obwohl diese völlig in Ordnung Lösungen sein könnte für das, was Sie versuchen zu erreichen.

Wenn es von den Dingen, angetrieben wurde, wäre es nicht, wenn Sie nicht verbunden waren, als beide von denen auf dem Server verlassen, um die aktuellen Informationen zu speichern und Dropbox nicht. Wenn ich Dropbox (done über den Menüpunkt) und schalten Sie vom Netz zu verlassen, kann ich immer noch die Dateien verwenden. Das ist, weil die Dateien tatsächlich hier auf meiner Festplatte gespeichert werden.

Es bedeutet auch, dass die Dateien müssen nicht „auf jeder Last heruntergeladen“ werden, da sie auf meinem Rechner hier tatsächlich gespeichert sind. Stattdessen wird nur die Deltas über den Draht gesendet, und die Dropbox-Anwendung (im Hintergrund ausgeführt wird) Patches, die in geeigneter Weise Dateien. Möchten Sie in die andere Richtung, Uhren die Dropbox-Anwendung für die Dateien in der Dropbox-Ordner, und wenn sie sich ändern, sendet er die entsprechenden Deltas an den Server, der sie an andere Kunden ausbreitet.

Dieses Setup hat einige entscheidende Vorteile: es funktioniert, wenn offline, es ist eine Größenordnung schneller ist, und es ist transparent für andere Anwendungen, da sie auf der Festplatte siehe Dateien einfach. Allerdings habe ich keine Ahnung, wie es mit Merge Konflikten befasst (die leicht mit einem oder mehreren Clients offline entstehen können), die kein Problem dar, wenn der Server die einzige Kopie ist und jeder bearbeiten Änderungen, die zentrale Kopie.

Wo Dropbox wirklich glänzt ist, dass sie einen zusätzlichen Trick hat, die die Elemente in den Dropbox-Ordnern mit ihrem aktuellen Synchronisierungsstatus Abzeichen. Aber das ist nicht das, was Sie hier sind zu fragen.

Was die Frage auf der Hand, sollten Sie auf jeden Fall schauen Sie in MacFUSE und WebDAV, die perfekten Lösungen für Ihr Problem sein könnte. Aber die Dropbox Art und Weise, Dinge zu tun, mit einer Hintergrundanwendung eigentliche Dateien auf der Festplatte zu ändern, könnte ein besserer Kompromiss sein.

Dropbox verwendet wahrscheinlich FSEvents zu sehen für Änderungen an dem Dateisystem. Es ist eine große API und kann sogar Änderungen bündeln, was geschehen, während die App nicht ausgeführt wurde. Es ist die gleiche API, dass Spotlight verwendet. Die menubar App tut wahrscheinlich die tatsächliche selbst beobachtet (seit dem Neustart kann Uploads reparieren hung sein, zum Beispiel).

Es gibt keine Möglichkeit, sie MacFUSE verwenden, so dass erfordern würde die MacFUSE Kernel-Erweiterung zu installieren Dropbox Arbeit zu machen, und da ich auf jeden Fall nicht installiert haben, ich sehr bezweifeln, sie verwenden es.

Dropbox auf dem Client ist in Python geschrieben. Der Client scheint eine sqlite3 Datenbank Indexdateien zu verwenden. Ich nehme an Dropobox eine Datei in Stücke geteilt, Bandbreitennutzung zu reduzieren. By the way, es zwei die gleiche Datei hat Menschen, auch wenn sie nicht wissen, sich, kann der Server optimieren und vermeidet die Datei mehrmals zu übertragen, kopiert sie nur auf der Serverseite

Für mich fühlt es sich wie eine stark modifizierte Revisionskontrollsystem. Es verfügt über alle Funktionen: Updates Dateien basierend auf Deltas, Optionen zu erholen oder alte Versionen von Dateien wiederherstellen. Es fühlt sich fast wie sie git verwenden ( gitfs ?) Oder ein Dateisystem sie entworfen.

Sie könnten auch geben Datei Conveyor einen Versuch. Es ist ein Python-Daemon der Lage FS Änderungen sofort Erfassen (auf Linux durch inotify, auf OS X durch FSEvents), Verarbeiten der Dateien und Synchronisierung sie zu einem oder mehreren Zielen.

Unterstützte Protokolle: FTP, SFTP, Amazon S3 (Cloudfront wird ebenfalls unterstützt), Rackspace Cloud Files. Kann leicht erweitert werden. Verwendet django-storages.

"Verarbeitung von Dateien": z Optimierung der Bilder, Videos Umcodieren - das ursprünglich konzipiert wurde für das Senden von statischen Vermögenswerte an einen CDN im Kontext verwendet werden beschleunigen Websites)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top