Filesystem (fuse) implemented on Mosso's Cloud Files
Shell C
Switch branches/tags
Nothing to show
Pull request Compare This branch is 4 commits ahead, 60 commits behind redbo:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Cloudfuse is a FUSE application which provides access to Rackspace's
Cloud Files (or any installation of Swift).

Cloud Files is a remote storage system which is similar in principle to
Amazon S3.  It provides a simple RESTful interface to storing and retrieving

Swift, the software behind Cloud Files, has been open-sourced as part of the
OpenStack project.


    You'll need libcurl, fuse, libssl, and libxml2 (and probably their dev
    packages) installed to build it.  From a base Debian or Ubuntu install,
    this should get you to a point you can build and run it:
        apt-get install build-essential libcurl4-openssl-dev libxml2-dev \
             libssl-dev libfuse-dev

    Cloudfuse is built and installed like any other autoconf configured code.
        sudo make install

    But I'm no autoconf wizard, and there may be dragons lurking there.


    Your Rackspace Cloud username and API key can be placed in a file
    named $HOME/.cloudfuse:
        api_key=[api key]
        container=[base container]

    Or as mount options on the command line:
        cloudfuse -o username=redbo,api_key=713aa... mountpoint/

    Or as mount options in /etc/fstab:
        cloudfuse /mnt/cloudfiles fuse username=redbo,api_key=713aa...,user 0 0

    The following options are... optional:
        use_snet=[True to use servicenet for connections]
        cache_timeout=[seconds for directory caching, default 600]
        authurl=[authentication url - connect to non-Rackspace (swift) cluster]

    It also inherits a number of command-line arguments and mount options from
    the Fuse framework.  The "-h" argument should provide a summary.

    Your OS user will need access to the "fuse" group.  This can probably be
    accomplished with:
        sudo usermod -a -G fuse [username]


    * rename() doesn't work on directories (and probably never will).
    * When reading and writing files, it buffers them in a local temp file.
    * It keeps an in-memory cache of the directory structure, so it may not be
      usable for large file systems.  Also, files added by other applications
      will not show up until the cache expires.
    * The root directory can only contain directories, as these are mapped to
      containers in cloudfiles.
    * Directory entries are created as empty files with the content-type
    * Cloud Files limits container and object listings to 10,000 items.
      cloudfuse won't list more than that many files in a single directory.


    * Tim Dysinger fixed the Makefile    
    * Chris Wedgwood made du work by fixing stat
    * Nick Craig-Wood implemented rename 
    * Dillon Amburgey made it compile on clang

Thanks, and I hope you find it useful.

Michael Barton