more about webdav
[Imported from Trac: page GSoCIdeas2010, version 93]
parent
a1007e46c5
commit
b2c26ef18f
|
@ -78,9 +78,57 @@ Difficulty: easy to hard, depending on project choice and how far you want to pu
|
|||
|
||||
Invent your own Summer-of-Code project by building a new web app on top of Tahoe-LAFS. The [#SecureDecentralizedWiki Secure Decentralized Wiki] is one example of a Cloud App. See [GSoCIdeas](GSoCIdeas)/CloudApps for other ideas.
|
||||
|
||||
# WebDAV
|
||||
# WebDAV support
|
||||
|
||||
Difficulty: medium to hard, depending on how much of an existing WebDAV implementation you are able to reuse
|
||||
|
||||
Implement a WebDAV front-end for Tahoe-LAFS so that files and directories stored in a distributed grid can be
|
||||
accessed by operating systems and applications that speak the WebDAV protocol. WebDAV is specified in
|
||||
[RFC 2518](http://tools.ietf.org/html/rfc2518.html) and [a few other documents](http://www.ics.uci.edu/~ejw/authoring/);
|
||||
it essentially extends HTTP to act as a filesystem access protocol. For details see #451 which describes what the Tahoe-LAFS web server does now, how this differs from what a WebDAV web server does, and how to get started experimenting with the relevant source code.
|
||||
|
||||
The main attraction of implementing a WebDAV interface is that
|
||||
several operating systems have bundled and somewhat integrated support
|
||||
for it, including Windows, Mac OS X, and most distributions of Linux.
|
||||
In fact WebDAV may turn out to be an easier alternative to
|
||||
[SMB/CIFS](http://en.wikipedia.org/wiki/Server_Message_Block)
|
||||
for allowing filesystem access from Windows.
|
||||
|
||||
However, there is currently no working WebDAV implementation in Twisted
|
||||
Python. There used to be one (the `web2.dav` package),
|
||||
[but it bitrotted](http://twistedmatrix.com/trac/ticket/3081).
|
||||
You'll have to decide whether to help fix that implementation, use a
|
||||
non-Twisted implementation such as [WsgiDAV](http://code.google.com/p/wsgidav/)
|
||||
that might be more difficult to integrate wth the existing Tahoe code,
|
||||
or write your own. In any case, WebDAV is a complicated protocol and
|
||||
you will need to decide what subset of it gives most "bang for the buck"
|
||||
and is practical to support in the time available. For example, locking
|
||||
is optional in the WebDAV spec; is it needed to interoperate with commonly
|
||||
used WebDAV clients?
|
||||
|
||||
Unlike most filesystems which are constrained to be trees, the structure
|
||||
of a Tahoe is in general a cyclic graph.
|
||||
[draft-ietf-webdav-bind](http://tools.ietf.org/html/draft-ietf-webdav-bind) is
|
||||
an Internet Draft that clarifies how WebDAV servers should handle cycles.
|
||||
|
||||
[davfs2](http://savannah.nongnu.org/projects/davfs2) is a FUSE-based
|
||||
WebDAV filesystem client for Linux. To ensure that this runs correctly
|
||||
over your implementation of WebDAV, you'll probably need to adapt the
|
||||
tests for the existing Tahoe
|
||||
["blackmatch"]source:contrib/fuse/impl_c/blackmatch.py FUSE interface
|
||||
(this would not be redundant since the blackmatch implementation has
|
||||
limitations, especially for write access, that davfs2 would not have).
|
||||
|
||||
The [WebDAV mini-redirector](http://en.wikipedia.org/wiki/WebDAV#Microsoft_Windows)
|
||||
is the component of Windows providing its WebDAV filesystem support. It is
|
||||
actually the less buggy of
|
||||
[two implementations](http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/), but it still has had
|
||||
[bugs](http://greenbytes.de/tech/webdav/webdav-redirector-list.html) and
|
||||
[security vulnerabilities](http://www.microsoft.com/technet/security/bulletin/MS08-007.mspx)
|
||||
that you may need to take into account.
|
||||
|
||||
[Tickets labelled 'webdav'](http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~webdav)
|
||||
|
||||
Implement a WebDAV front-end for Tahoe-LAFS so that files and directories stored in a distributed grid can be accessed by operating systems (including Windows, Mac, and Linux) and applications that speak the WebDAV protocol. For details see #451 which describes what the Tahoe-LAFS web server does now, how this differs from what a WebDAV web server does, and how to get started experimenting with the relevant source code.
|
||||
|
||||
# Distributed Introduction
|
||||
|
||||
|
|
Loading…
Reference in a new issue