Domanda

Per un progetto attuale, stavo pensando di implementare WebDAV per presentare un archivio di file virtuale a cui i clienti possono accedere.Finora ho fatto solo ricerche su Google, ma sembra che riesco a cavarmela solo implementando due metodi:

GET, PROPFIND

Penso che questo sia fantastico.Ero solo curioso però.Se volessi implementare il caricamento dei file tramite:

PUT

Non l'ho implementato, ma sembra abbastanza semplice.La mia unica preoccupazione è se verrà visualizzato un indicatore di avanzamento per l'utente se utilizza Vista Explorer standard o OSX Finder.

Immagino che sto cercando alcune storie di persone esperte con WebDAV.

È stato utile?

Soluzione

Per molti client WebDAV e anche per l'accesso in sola lettura, sarà anche necessario per supportare OPZIONI. Se si desidera supportare caricati, PUT, ovviamente, è richiesto, e alcuni clienti (MacOS X?) Richiederanno il blocco di supporto.

(a proposito, RFC 4918 è la fonte autorevole di informazioni).

Altri suggerimenti

Ho implementato la maggior parte del protocollo WebDAV in circa una giornata di lavoro: http://github.com/nfarina/simpledav

L'ho scritto in Python per funzionare su Google App Engine, e mi aspetto che qualsiasi altra lingua sarebbe un simile sforzo. Tutto sommato, si tratta di circa due pagine di codice.

Ho implementato seguenti metodi: OPZIONI, PROPFIND, MKCOL, cancellare, spostare, PUT, GET. Finora ho provato di trasmissione e Cyberduck ed entrambi funzionano molto bene con esso.

Speriamo che questo può fornire alcune linee guida per la prossima persona là fuori interessati a implementare un server WebDAV. Non è un protocollo difficile, è solo molto denso con il linguaggio astratto come 'profondita' e 'collezioni' e bla.

Ecco le specifiche: http://www.webdav.org/specs/rfc4918.html

Ma il modo migliore per capire il protocollo è quello di guardare un cliente interagisce con un server di lavoro. Ho usato di trasmissione per la connessione al server WebDAV di Box.net e monitorato il traffico con Charles Proxy.

po 'tardi per il partito, ma ho implementato la maggior parte del protocollo WebDAV e vi posso dire con sicurezza è necessario implementare la maggior parte del protocollo.

Per OS / X avrete bisogno di classe-2 supporto WebDAV, che comprende bloccare e sbloccare (ho trovato particolarmente difficile da attuare pienamente il http Se: colpo di testa, ma per Finder avrete solo bisogno di un po 'di quello. )

Questi sono alcuni dei miei risultati personali:

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

Spero che questo aiuti

Se si esegue Apache Jackrabbit sotto, per esempio, Tomcat, che può essere configurato per offrire WebDAV e memorizzare i file caricati. Forse questo sarà un modello utile, o anche un buon sostituto sufficiente per l'attuazione previsto.

Apache Jackrabbit supporto per WebDAV

Inoltre, si consiglia di essere a conoscenza del cliente BitKinex (prova gratuita di 30 giorni), che ho trovato per essere uno strumento utile per testare un server WebDAV.

BitKinex pagina

Usiamo WebDAV internamente per fornire una visione basata su cartelle di alcune condivisioni di file ai clienti al di fuori del nostro firewall. Stiamo usando IIS6 per questo.

In sostanza, si riduce a creare una directory virtuale in IIS che associa ad ogni file system di rete che si desidera rendere disponibile via WebDAV. Configurarlo con il contenuto proveniente da "condivisa situata in un altro computer" - utilizzare il percorso UNC per la condivisione per il valore di directory di rete. Accendiamo tutte le opzioni tranne Indice questa risorsa. Disattivare tutte le pagine di contenuti di default. Attivare l'autenticazione integrata di Windows (la nostra è impostato utilizzando SSL pure). Ho la radice impostato per negare l'accesso a anonimo e consentire l'accesso a qualsiasi utente autenticato. Abbiamo anche una mappatura jolly MIME (. * A application / octet-stream). Abilitare il WebDAV estensione del servizio Web in IIS. È inoltre necessario configurare il server Web per delegare le autorizzazioni a tutti i file server che si potrebbero accedere in modo che possa passare le credenziali dell'utente.

Se si dispone di client Macintosh può essere necessario anche un filtro ISAPI che associa 401 a 403 errori per i clienti Darwin. Microsoft e Apple in disaccordo su come gestire la situazione quando non si ha il permesso di scrivere in una directory. Apple mantiene il reinvio le credenziali su un errore di 401 (accesso negato), traducendo in un errore 403 (Forbidden) mantiene questo accada. Di default Apple ama scrivere un file "punto" per ogni directory accede. La navigazione attraverso le directory in cui non si ha accesso in scrittura finirà per schiantarsi Finder se non hanno il filtro. Ho il codice sorgente per questo, se necessario.

Questo è tutto fuori dalla parte superiore della mia testa. E 'possibile (probabile?) Che forse ho perso qualcosa. Non esitate a contattarmi tramite le informazioni di contatto sul mio sito web in caso di problemi.

Abbiamo una servlet WebDAV sul nostro prodotto web based.

ho trovato Apache Jackrabbit un buon aiuto per la sua attuazione. tuttavia WebDAV è un grave P.I.T.A sul supporto lato client.

molti client di attuazione differiscono ampiamente nel loro comportamento e molto probabilmente dovrà supportare diversi tipi di implementazioni spiati.

alcuni esempi: MS Vista supporta solo l'autenticazione su SSL

La maggior parte basato su Windows client WebDAV assumere la tua WebDAV server / let è un server di SharePoint e agirà di conseguenza (e quindi non secondo il protocollo WebDAV)

Un esempio di questo è che è necessario per consentire e richiesta di blocco non autenticato nella directory principale del server (cioè yourdomain.com/ non yourdomain.com/where/webdav/should/live) altrimenti non sarà in grado di ottenere scrivere accesso a MS Windows. (Questa è una grave P.I.T.A su una macchina in cui Tomcat tua roba vive quando arrivavano in server.com/servlets/paths/thelocation)

La maggior parte (tutte?) Le versioni di MS Office rispondono diverso da link WebDAV.

credo che il mio punto sta integrando il supporto WebDAV in un prodotto esistente può essere molto più difficile, allora ci si aspetterebbe. e, se possibile vorrei consigli di utilizzare una (semi) server WebDAV -standalone quali lepre webdavServer, o apache mod_webdav

Ho trovato il supporto WebDAV del Finder di OS X davvero complicato.Per ottenere il supporto di lettura-scrittura, devi implementare LOCK, oltre ad altri bit.

Ho scritto un'interfaccia WebDAV su un database Postres, dove i moduli Python erano archiviati nel database in una struttura gerarchica simile a una cartella.L'accesso con cadaver ha funzionato bene e anche IIRC, un browser Windows con GUI, ha funzionato, ma Finder si è rifiutato di montare la condivisione come qualcosa di diverso da quella di sola lettura.

Quindi, non so se darebbe una barra di avanzamento.I file con cui avevo a che fare erano abbastanza piccoli che la loro lettura/copia era praticamente istantanea.Penso che una copia di un file di grandi dimensioni utilizzando il Finder probabilmente fornirebbe una barra di avanzamento, lo fa per qualsiasi altro tipo di condivisione montata.

Ecco un altro progetto open source per WSGI WebDAV      http://code.google.com/p/wsgidav/ dove ho preso il progetto PyFileServer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top