fs.contrib.tahoelafs

This modules provides a PyFilesystem interface to the Tahoe Least Authority File System. Tahoe-LAFS is a distributed, encrypted, fault-tolerant storage system:

You will need access to a Tahoe-LAFS “web api” service.

Example (it will use publicly available (but slow) Tahoe-LAFS cloud):

from fs.contrib.tahoelafs import TahoeLAFS, Connection
dircap = TahoeLAFS.createdircap(webapi='http://insecure.tahoe-lafs.org')
print "Your dircap (unique key to your storage directory) is", dircap
print "Keep it safe!"
fs = TahoeLAFS(dircap, autorun=False, webapi='http://insecure.tahoe-lafs.org')
f = fs.open("foo.txt", "a")
f.write('bar!')
f.close()
print "Now visit %s and enjoy :-)" % fs.getpathurl('foo.txt')

When any problem occurred, you can turn on internal debugging messages:

import logging
l = logging.getLogger()
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler(sys.stdout))

... your Python code using TahoeLAFS ...

TODO:

  • unicode support
  • try network errors / bad happiness
  • exceptions
  • tests
  • sanitize all path types (., /)
  • support for extra large file uploads (poster module)
  • Possibility to block write until upload done (Tahoe mailing list)
  • Report something sane when Tahoe crashed/unavailable
  • solve failed unit tests (makedir_winner, ...)
  • file times
  • docs & author
  • python3 support
  • remove creating blank files (depends on FileUploadManager)
TODO (Not TahoeLAFS specific tasks):
  • RemoteFileBuffer on the fly buffering support
  • RemoteFileBuffer unit tests
  • RemoteFileBuffer submit to trunk
  • Implement FileUploadManager + faking isfile/exists of just processing file
  • pyfilesystem docs is outdated (rename, movedir, ...)
class fs.contrib.tahoelafs.TahoeLAFS(*args, **kwds)

FS providing cached access to a Tahoe Filesystem.

This class is the preferred means to access a Tahoe filesystem. It maintains an internal cache of recently-accessed metadata to speed up operations.