Pregunta

Para un proyecto actual, estaba pensando en implementar WebDAV para presentar un almacén de archivos virtual al que los clientes puedan acceder.Hasta ahora solo he investigado en Google, pero parece que puedo salirme con la mía implementando solo dos métodos:

GET, PROPFIND

Creo que esto es genial.Aunque solo tenía curiosidad.Si quisiera implementar la carga de archivos a través de:

PUT

No lo he implementado, pero parece bastante simple.Mi única preocupación es si se mostrará un medidor de progreso para el usuario si usa Vista Explorer estándar o OSX Finder.

Supongo que estoy buscando algunas historias de personas con experiencia con WebDAV.

¿Fue útil?

Solución

Para muchos clientes WebDAV e incluso para acceso de sólo lectura, que también tendrá que soportar OPCIONES. Si quieres apoyar a cargar, PUT, obviamente, se requiere, y algunos clientes (MacOS X?) Requerirán un apoyo de bloqueo.

(por cierto, RFC 4918 es la fuente authorative de información).

Otros consejos

Implementé la mayor parte del protocolo WebDAV en aproximadamente un día de trabajo: http://github.com/nfarina/simpledav

Lo escribí en Python para ejecutarlo en Google App Engine y espero que cualquier otro lenguaje suponga un esfuerzo similar.En total, se trata de dos páginas de código.

Implementé los siguientes métodos:OPCIONES, PROPFIND, MKCOL, BORRAR, MOVER, PONER, OBTENER.Hasta ahora he probado Transmit y Cyberduck y ambos funcionan muy bien con ellos.

Con suerte, esto puede proporcionar alguna orientación para la próxima persona interesada en implementar un servidor WebDAV.No es un protocolo difícil, simplemente es muy denso con un lenguaje abstracto como "profundidad" y "colecciones" y bla.

Aquí está la especificación: http://www.webdav.org/specs/rfc4918.html

Pero la mejor manera de entender el protocolo es observar a un cliente interactuando con un servidor en funcionamiento.Utilicé Transmit para conectarme al servidor WebDAV de Box.net y supervisé el tráfico con Charles Proxy.

poco tarde a la fiesta, pero he implementado la mayor parte del protocolo WebDAV y puedo decir con confianza que necesita para poner en práctica la mayor parte del protocolo.

Para OS / X que necesita el apoyo de WebDAV clase 2, que incluye bloquear y desbloquear (me pareció particularmente difícil de aplicar plenamente el http encabezado If:, pero para Buscador lo único que necesita un poco de eso. )

Estos son algunos de mis resultados personales:

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

Espero que esto ayude

Si ejecuta Apache Jackrabbit bajo, por ejemplo, Tomcat, que se puede configurar para ofrecer archivos WebDAV y almacenar subidos. Tal vez eso será un modelo útil, o incluso un buen reemplazo suficiente para la aplicación prevista.

Apache Jackrabbit soporte para WebDAV

Además, es posible que desee tener en cuenta del cliente BitKinex (gratuita de 30 días de prueba), que he encontrado para ser una herramienta útil para probar un servidor WebDAV.

BitKinex Página

Utilizamos WebDAV internamente para proporcionar una visión basada en carpetas de algunos archivos compartidos a clientes fuera de nuestro servidor de seguridad. Estamos utilizando IIS6 para esto.

Básicamente, todo se reduce a la creación de un directorio virtual en IIS que se asigna a cada sistema de archivos de red que desea poner a disposición a través de WebDAV. Configurarlo con el contenido que viene de "un recurso compartido en otro equipo" - usar la ruta UNC a la acción para el valor del directorio de red. Encendemos todas las opciones excepto Índice de este recurso. Desactivar todas las páginas de contenido predeterminado. Activar la autenticación integrada de Windows (la nuestra se configura a través de SSL también). Tengo la raíz configurado para denegar el acceso a anónimo y permitir el acceso a cualquier usuario autenticado. También tenemos una asignación de comodín MIME (. * a application / octet-stream). Habilitar la extensión de servicio web WebDAV en IIS. También es necesario configurar el servidor web para delegar permisos a todos los servidores de archivos que pueden estar accediendo a lo que puede pasar en las credenciales del usuario.

Si usted tiene clientes Macintosh también puede ser necesario un filtro ISAPI que se asigna 401 a 403 errores para los clientes de Darwin. Microsoft y Apple en desacuerdo sobre cómo manejar la situación cuando usted no tiene permiso para escribir en un directorio. Apple se queda volver a enviar las credenciales en un error 401 (Acceso denegado), traducirlo a un error 403 (prohibido) mantiene que esto suceda. Por defecto Apple le gusta escribir un archivo de "punto" a cada directorio tiene acceso. Navegando a través de los directorios en los que no tiene acceso de escritura va a terminar chocando el Finder si usted no tiene el filtro. Tengo código fuente de este si es necesario.

Esto es todo de la parte superior de la cabeza. Es posible (probable?) Que puede haber perdido algo. No dude en ponerse en contacto conmigo a través de la información de contacto en mi sitio web, si usted tiene problemas.

Tenemos un servlet WebDAV en nuestro producto basado en la web.

he encontrado Apache Jackrabbit una buena ayuda para su aplicación. Sin embargo WebDAV es un P.I.T.A serio en el soporte del lado del cliente.

muchos implementación del cliente difieren ampliamente en su comportamiento y es muy probable que tendrá que soportar diferentes tipos de implementaciones Fastidiado.

algunos ejemplos: MS Vista sólo admite la autenticación a través de SSL

mayoría de las ventanas basa cliente WebDAV asuma que su servidor WebDAV / let es un servidor de SharePoint y actuará en consecuencia (por lo tanto no de acuerdo con el protocolo WebDAV)

Un ejemplo de esto es que se necesita para permitir y solicitudes LOCK no autenticado en la raíz de su servidor (es decir, no yourdomain.com/ yourdomain.com/where/webdav/should/live) de lo contrario no será capaz de conseguir escribir acceso en MS windows. (Esto es un grave P.I.T.A en una máquina de Tomcat donde su materia usualy vive en server.com/servlets/paths/thelocation)

la mayoría (todos?) Versiones de MS Office responden diferente a los enlaces WebDAV.

i que mi punto es la integración de soporte WebDAV en un producto existente puede ser mucho más difícil de lo que cabría esperar. y si es posible i aconsejaría utilizar un (semi) servidor WebDAV -standalone como webdavServer liebre, o Apache mod_webdav

He encontrado apoyo Buscador de WebDAV de OS X que ser muy meticuloso. Con el fin de conseguir el apoyo de lectura y escritura, usted tiene que poner en práctica LOCK, además de otros bits.

Me escribió una interfaz WebDAV para una base de datos Postres, donde se almacenan los módulos de Python en la base de datos en una estructura de carpetas similar jerárquica. Para acceder a él con el cadáver funcionó bien, y IIRC un explorador de Windows GUI trabajaron también, pero se negó a Buscador de montar el recurso compartido como cualquier cosa que no sea de sólo lectura.

Por lo tanto, no sé si si le daría una barra de progreso. Los archivos que estaba tratando con eran lo suficientemente pequeño que una lectura / copia de ellos fue prácticamente instantánea. Creo que una copia de un archivo de gran tamaño utilizando el Buscador probablemente daría una barra de progreso - lo hace para cualquier otro tipo de recurso compartido montado

.

Aquí hay otro proyecto de código abierto para WebDAV WSGI      http://code.google.com/p/wsgidav/ donde recogí el proyecto PyFileServer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top