wiki:pyFilesystem

Version 3 (modified by Elderry, at 2013-07-27T12:40:51Z) (diff)

Modified testgrid uri

Tahoe-LAFS works with pyFilesystem. It is not officially maintained by Tahoe-LAFS devs, but it works.

Here is the email that this is based off of: http://tahoe-lafs.org/pipermail/tahoe-dev/2011-August/006663.html

  1. Get and install Dokan lib at http://dokan-dev.net/en/download/#dokan
  1. Get pyfilesystem at http://code.google.com/p/pyfilesystem/downloads/list or do a pip install fs and skip to step 4.
  1. Install pyfilesystem:
    cmd> python setup.py build
    cmd> python setup.py install
    
  1. Verify that pyfilesystem is installed:
    cmd> python
    python>>> import fs
    python>>> fs.__version__
    
  2. Mount test/public grid to F:\ letter
    cmd> python
    python>>> from fs.contrib.tahoelafs import TahoeLAFS
    python>>> from fs.expose import dokan
    python>>> fs = TahoeLAFS('URI:DIR2:ddg5n76x6stjb35psrcn7i3ytu:etbtnftlaeylm4gmi7mxzq6pg2ntgra7dyjeronyoo4pvkgtttqa')
    python>>> mp = dokan.mount(fs, "f", foreground=True)
    

This works fine. I have a slightly different setup since this also works with FUSE.

On Windows, follow the above steps up to and including step 4.

On Linux, do a pip install fs and make sure fuse is installed.

Then you can edit this script:

#!/usr/bin/env python

URI='URI:DIR2:ctmtx2awdo4xt77x5xxaz6nyxm:n5t546ddvd6xlv4v6se6sjympbdbvo7orwizuzl42urm73sxazqa'
mountPoint='f'               #Windows with dokan
# mountPoint='/mnt/tahoe'    #Linux with FUSE

import time
from fs.contrib.tahoelafs import TahoeLAFS

try:
        from fs.expose import dokan
        fs = TahoeLAFS(URI)
        mp = dokan.mount(fs, mountPoint)

except:
        from fs.expose import fuse
        fs = TahoeLAFS(URI)
        mp = fuse.mount(fs, mountPoint)

Replace URI with your URI on your grid. The above URI is the test writable URI in the TestGrid. Replace the mountPoint variable with the Windows drive letter or the UNIX filesystem path for the fuse mount point on all other systems.

Run the script and it will mount the URI at the specified location. If you want to unmount it, find out where dokanctl.exe is and run it from the command line dokanctl.exe /u f:. Sometimes I have to force the unmount on Windows. Use fusermount -u /mnt/tahoe on the FUSE systems.