Frage

Für ein aktuelles Projekt, dachte ich WebDAV der Implementierung eines virtuellen Dateispeicher zu präsentieren, die Clients zugreifen können. Ich habe bisher nur Google Forschung getan, aber es sieht aus wie ich nur wegkommen kann mit zwei Methoden der Umsetzung:

GET, PROPFIND

Ich glaube, das ist großartig. Ich war aber einfach nur neugierig. Wenn ich wollte das Hochladen von Dateien über implementieren:

PUT

Ich habe es nicht implementiert, aber es scheint einfach genug. Meine einzige Sorge ist, ob eine Statusanzeige für den Benutzer angezeigt werden, wenn sie Standard-Vista-Explorer oder OSX Finder verwenden.

Ich glaube, ich bin für einige Geschichten von Menschen erlebt mit WebDAV suchen.

War es hilfreich?

Lösung

Für viele WebDAV-Clients und sogar für nur Lesezugriff, müssen Sie auch OPTIONS unterstützen. Wenn Sie Upload unterstützen möchten, PUT offensichtlich erforderlich ist, und einige Kunden (MacOS X?) Benötigen Unterstützung verriegelt wird.

(btw, RFC 4918 ist die authorative Informationsquelle).

Andere Tipps

ich den größten Teil des WebDAV-Protokolls von einem Tag Arbeit umgesetzt: http://github.com/nfarina/simpledav

Ich schrieb es in Python auf Google App Engine laufen, und ich erwarte, dass andere Sprache würde eine ähnliche Anstrengung sein. Alles in allem geht es um zwei Seiten Code.

I umgesetzt folgenden Methoden: OPTIONS, PROPFIND, MKCOL, DELETE, MOVE, PUT, GET. Bisher habe ich getestet Transmit und Cyberduck und beide arbeiten gut mit ihm.

Hoffentlich kann dies einige Hinweise für die nächste Person bietet da draußen interessiert in einem WebDAV-Server zu implementieren. Es ist nicht schwer Protokoll, es mit abstrahierte Sprache wie ‚Tiefen‘ nur sehr dicht ist und ‚Sammlungen‘ und bla.

Hier ist die Spezifikation: http://www.webdav.org/specs/rfc4918.html

Aber der beste Weg, um das Protokoll zu verstehen, ist ein Client-Interaktion mit einem funktionierenden Server zu beobachten. Ich benutzen Transmit zu Box.net des WebDAV-Server zu verbinden und überwachten Verkehrs mit Charles Proxy.

Bit spät zur Party, aber ich habe die meisten das WebDAV-Protokoll implementiert und ich kann mit Zuversicht sagen, die meisten von dem Protokoll implementieren müssen werden.

Für OS / X Sie Klasse-2 WebDAV-Unterstützung benötigen, die LOCK und UNLOCK enthält (Ich fand es besonders schwierig, vollständig die http zu implementieren If: Header, aber für Finder Sie werden nur ein bisschen, dass müssen. )

Dies sind einige meiner persönlichen Ergebnisse:

http://sabre.io/dav/clients/windows/ http://sabre.io/dav/clients/finder/

Hope, das hilft

Wenn Sie Apache Jackrabbit laufen unter, sagen wir, Tomcat, es kann so konfiguriert werden, WebDAV und Speicher bieten hochgeladenen Dateien. Vielleicht wird das ein nützliches Modell sein, oder auch ein gut genug, um Ersatz für die geplante Umsetzung.

Apache Jackrabbit Unterstützung für WebDAV

Auch, können Sie sich die BitKinex Client (kostenlose 30-Tage-Testversion) sein, die ich gefunden habe, zum Testen eines WebDAV-Servers ein nützliches Werkzeug zu sein.

BitKinex Home

Wir verwenden WebDAV intern einen Ordner-basierte außerhalb unserer Firewall-Clients einiger Datei Aktien Ansicht zur Verfügung zu stellen. Wir verwenden IIS6 dafür.

Im Grunde läuft es nach unten ein virtuelles Verzeichnis in IIS zu erstellen, die zu jedem Netzwerk-Dateisystem zuordnet, die Sie über WebDAV zur Verfügung stellen möchten. Setzen Sie sich mit dem Inhalt kommt von „A-Aktie auf einem anderen Computer“ up - nutzen Sie den UNC-Pfad zur Freigabe für den Network Directory Wert. Wir wenden uns an alle Optionen außer Ressource indizieren. Deaktivieren Sie alle Standard-Content-Seiten. Schalten Sie die integrierte Windows-Authentifizierung (unsere eingerichtet ist auch mit SSL). Ich habe die Wurzel einrichten Zugriff auf anonym zu verweigern und erlauben den Zugriff auf jeden authentifizierten Benutzer. Wir haben auch eine Wildcard MIME-Zuordnung (. * Auf application / octet-stream). Aktivieren Sie die WebDAV-Webdiensterweiterung in IIS. Sie müssen auch den Web-Server einzurichten Berechtigungen für alle Dateiserver delegieren Sie so zugreifen kann es auf dem Benutzer-Anmeldeinformationen weitergeben können.

Wenn Sie Macintosh-Clients haben müssen Sie möglicherweise auch einen ISAPI-Filter, der 401 bis 403 Fehler für Darwin Kunden abbildet. Microsoft und Apple nicht einig, wie die Situation zu handhaben, wenn Sie in ein Verzeichnis haben keine Berechtigung zu schreiben. Apple hält die Anmeldeinformationen auf einem 401 (Zugriff verweigert) Fehler erneut gesendet wird, es zu einer 403 (Verboten) Fehler übersetzen dies hält nicht passiert. Standardmäßig mag Apple eine „Punkt“ Datei in jedes Verzeichnis zu schreiben, es greift. Die Navigation durch Verzeichnisse, in denen Sie Schreibzugriff nicht den Finder am Ende haben wird abstürzt, wenn Sie nicht über die Filter. Ich habe Quellcode für diese, wenn nötig.

Das ist alles aus der Spitze von meinem Kopf. Es ist möglich (wahrscheinlich?), Dass ich etwas verpasst haben. Fühlen Sie sich frei, mich über die Kontaktinformationen auf meiner Website zu kontaktieren, wenn Sie Probleme haben.

Wir haben einen webDAV Servlet auf unserem Web-basiertes Produkt.

Ich habe für deren Umsetzung Apache Jackrabbit eine gute Hilfe gefunden. jedoch WebDav ist eine ernste P.I.T.A auf der Client-Seite zu unterstützen.

viele Client-Implementierung sind sehr unterschiedlich in ihrem Verhalten und werden Sie wahrscheinlich mehrere verschiedene Arten von abgehörten Implementierungen unterstützen müssen.

einige Beispiele: MS Vista unterstützt nur die Authentifizierung über SSL

die meisten Windows-basierte WebDAV-Client übernimmt Ihr WebDAV-Server / let ein Sharepoint Server und wird entsprechend handeln (also nicht nach dem WebDAV-Protokoll)

Ein Beispiel dafür ist, dass Sie auf der Wurzel des Servers zu ermöglichen und nicht authentifiziert LOCK-Anforderung (dh yourdomain.com/ nicht yourdomain.com/where/webdav/should/live) sonst gewohnt Sie in der Lage sein, schreiben zu bekommen Zugang in MS Windows. (Dies ist eine ernste P.I.T.A auf einen Kater Maschine, wo Sie Ihre Sachen usualy in server.com/servlets/paths/thelocation leben)

die meisten (alle?) Versionen von MS Office reagieren unterschiedlich auf webdav Links.

ich denke, mein Punkt WebDAV-Unterstützung in ein bestehendes Produkt integriert kann viel schwieriger sein, dann Sie erwarten würden. und wenn möglich, würde ich empfehlen eine (halb-) -standalone webDAV Server wie hase webdavserver zu verwenden, oder Apache mod_webdav

Ich habe OS X Finder WebDAV-Unterstützung gefunden wirklich pingelig zu sein. Um Unterstützung schreiben schreib zu erhalten, müssen Sie LOCK implementieren, zusätzlich zu anderen Bits.

Ich schrieb eine WebDAV-Schnittstelle an einen Postres Datenbank, in der Python-Module in der Datenbank in einer hierarchischen Ordnerartigen Struktur gespeichert wurden. Zugriff auf sie mit kadaver funktionierte gut, und IIRC ein GUI-Fenster-Browser funktionierte auch, aber Finder verweigerte die Freigabe als etwas zu montieren andere als schreibgeschützt ist.

Also, ich weiß nicht, ob, wenn würde einen Fortschrittsbalken geben. Die Dateien, die ich zu tun hatte mit waren klein genug, dass eine Lese- / Kopie von ihnen praktisch verzögerungsfrei war. Ich denke, eine Kopie einer großen Datei mit dem Finder würde wahrscheinlich einen Fortschrittsbalken geben - es hat für jede andere Art von hängte Freigabe

.

Hier ist ein weiteres Open-Source-Projekt für WSGI WebDAV      http://code.google.com/p/wsgidav/ wo ich nahm das PyFileServer Projekt auf.

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