Question

Pour un projet en cours, je pensais à la mise en œuvre WebDAV pour présenter un magasin de fichiers virtuel que les clients peuvent accéder. Je n'ai fait jusqu'à présent la recherche Google, mais il semble que je peux sortir avec seulement la mise en œuvre de deux méthodes:

GET, PROPFIND

Je pense que ce qui est excellent. J'étais curieux cependant. Si je voulais mettre en œuvre le téléchargement de fichiers via:

PUT

Je ne l'ai pas mis en œuvre, mais il semble assez simple. Mon seul souci est de savoir si un indicateur de progression sera affiché pour l'utilisateur si elles utilisent la norme Vista Explorer ou OSX Finder.

Je suppose que je cherche des histoires de personnes expérimentées avec WebDAV.

Était-ce utile?

La solution

Pour de nombreux clients WebDAV et même pour l'accès en lecture seule, vous aurez également besoin de soutenir OPTIONS. Si vous souhaitez soutenir le téléchargement, PUT est nécessaire évidemment, et certains clients (Mac OS X?) Nécessiteront un soutien de verrouillage.

(d'ailleurs, RFC 4918 est la source de l'information authorative).

Autres conseils

Je mis en œuvre la plupart du protocole WebDAV dans le travail d'un jour: http://github.com/nfarina/simpledav

Je l'ai écrit en Python pour exécuter sur Google App Engine, et je me attends une autre langue serait un effort similaire. Dans l'ensemble, il est environ deux pages de code.

I mis en œuvre des méthodes suivantes: OPTIONS, PROPFIND, MKCOL, SUPPRIMER, MOVE, PUT, GET. Jusqu'à présent, je l'ai testé de transmission et de Cyberduck et travaillent tous les deux le même esprit.

Espérons que cela peut donner des indications pour la prochaine personne là intéressé par la mise en œuvre d'un serveur WebDAV. Ce n'est pas un protocole difficile, il est juste très dense avec le langage comme Abstraite « profondeur » et « collections » et bla.

Voici les spécifications: http://www.webdav.org/specs/rfc4918.html

Mais la meilleure façon de comprendre le protocole est de regarder un client d'interagir avec un serveur de travail. Je Transmit pour se connecter au serveur WebDAV de Box.net et surveillais le trafic avec Charles Proxy.

peu en retard à la fête, mais je l'ai mis en œuvre la plupart du protocole webdav et je peux dire avec confiance que vous aurez besoin de mettre en œuvre la plupart du protocole.

Pour OS / X, vous aurez besoin d'un soutien WebDAV classe 2, qui comprend LOCK et UNLOCK (je l'ai trouvé particulièrement difficile à mettre pleinement en œuvre le http Si: en-tête, mais pour Finder vous aurez seulement besoin d'un peu de cela. )

Voici quelques-unes de mes conclusions personnelles:

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

Hope this helps

Si vous exécutez Apache Jackrabbit sous, par exemple, Tomcat, il peut être configuré pour offrir des fichiers téléchargés WebDAV et à stocker. Ce sera peut-être un modèle utile, ou même un assez bon remplacement pour la mise en œuvre prévue.

Apache Jackrabbit support WebDAV

, vous voudrez peut-être aussi être conscient du client BitKinex (essai gratuit de 30 jours), que j'ai trouvé un outil utile pour tester un serveur WebDAV.

BitKinex Page d'accueil

Nous utilisons WebDAV en interne pour fournir une vue basée sur un dossier de certains partages de fichiers à des clients en dehors de notre pare-feu. Nous utilisons IIS6 pour cela.

En fait, cela se résume à la création d'un répertoire virtuel dans IIS qui correspond à chaque système de fichiers réseau que vous souhaitez mettre à la disposition via WebDAV. Réglez-le avec le contenu provenant de « Un partage situé sur un autre ordinateur » - utilisez le chemin UNC au partage de la valeur Network Directory. Nous allumons toutes les options sauf Indexer cette ressource. Désactiver toutes les pages de contenu par défaut. Allumez l'authentification Windows intégrée (la nôtre est mis en place en utilisant SSL ainsi). J'ai la racine mis en place pour refuser l'accès à l'anonymat et permettre l'accès à tout utilisateur authentifié. Nous avons aussi un mappage MIME générique (. * À l'application / octet-stream). Activer l'extension du service Web WebDAV dans IIS. Vous devez également configurer le serveur Web pour déléguer des autorisations à tous les serveurs de fichiers que vous pouvez accéderont donc il peut transmettre les informations d'identification de l'utilisateur.

Si vous avez des clients Macintosh, vous pouvez aussi avoir besoin d'un filtre ISAPI qui associe 401 à 403 erreurs pour les clients Darwin. Microsoft et Apple en désaccord sur la façon de gérer la situation lorsque vous n'êtes pas autorisé à écrire dans un répertoire. Apple conserve les informations d'identification sur réémission 401 (Accès refusé) erreur, traduisant une erreur 403 (Interdit) maintient que cela se produise. Par défaut, Apple aime à écrire un fichier « point » à chaque répertoire, il accède. Navigation dans les répertoires où vous ne disposez pas d'un accès en écriture va finir par écraser le Finder si vous n'avez pas le filtre. J'ai le code source pour cela si nécessaire.

Ceci est tout du haut de ma tête. Il est possible (probable?) Que je l'ai manqué quelque chose. Ne hésitez pas à me contacter via les coordonnées sur mon site web si vous avez des problèmes.

Nous avons une servlet webDAV sur notre produit à base web.

J'ai trouvé Apache Jackrabbit une bonne aide pour sa mise en œuvre. Cependant WebDav est un P.I.T.A sérieux sur le support côté client.

beaucoup la mise en œuvre du client diffèrent largement dans leur comportement et vous aurez probablement à prendre en charge plusieurs types différents de mises en œuvre buggées.

quelques exemples: MS Vista prend en charge uniquement l'authentification via SSL

la plupart des fenêtres basées sur le client webDAV supposons que votre webdav-server / let est un serveur de sharepoint et agir en conséquence (donc pas selon le protocole WebDav)

un exemple de ceci est que vous devez autoriser et non authentifié demande LOCK sur la racine de votre serveur (c.-à-yourdomain.com/ pas yourdomain.com/where/webdav/should/live) être d'autre que vous ne pourrez pas obtenir écrire accès à MS windows. (Ce qui est un grave P.I.T.A sur une machine tomcat où vit votre truc usualy dans server.com/servlets/paths/thelocation)

la plupart (tous?) Les versions de MS Office répondent aux liens différents webdav.

Je suppose que mon point intègre le soutien webdav dans un produit existant peut être beaucoup plus difficile alors que vous attendez. et si possible, je vous conseille d'utiliser un (semi-) serveur -standalone webDAV tels que Jackrabbit webdavServer, ou apache mod_webdav

J'ai trouvé le soutien WebDAV du Finder de Mac OS X pour être vraiment pointilleux. Afin d'obtenir le soutien de lecture-écriture, vous devez mettre en œuvre LOCK, en plus d'autres bits.

I écrit une interface WebDAV à une base de données Postres, où les modules python ont été stockées dans la base de données dans une structure en forme de dossier hiérarchique. L'accès avec cadaver a bien fonctionné, et IIRC une fenêtre GUI navigateur travaillé aussi, mais Finder a refusé de monter la part comme autre chose que lecture seule.

Alors, je ne sais pas si si donnerait une barre de progression. Les dossiers que je traitais étaient assez petits pour une lecture / copie d'eux était quasi-instantanée. Je pense que la copie d'un fichier volumineux en utilisant le Finder donnerait probablement une barre de progression - il le fait pour tout autre type de partage monté

.

Voici un autre projet open source pour WSGI WebDAV      http://code.google.com/p/wsgidav/ où je pris le projet PyFileServer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top