Skip to content

justinsb/cloudfuse

This branch is 1 commit ahead of, 56 commits behind redbo/cloudfuse:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9cc77c9 · Mar 30, 2012

History

90 Commits
Mar 30, 2012
Feb 3, 2009
Aug 31, 2011
Mar 30, 2012
Mar 30, 2012
Mar 30, 2012
Mar 30, 2012
Aug 31, 2011
Aug 31, 2011
Aug 31, 2011
Feb 3, 2009

Repository files navigation

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
objects.

    http://www.rackspacecloud.com/cloud_hosting_products/files

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

    http://swift.openstack.org/


BUILDING:

    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.
    Normally,
        ./configure
        make
        sudo make install

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


USE:

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

    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]
        use_openstack=[True if using OpenStack Keystone]
        tenant=[Tenant for authentication with Keystone]

    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]


EXAMPLE:

    A typical .cloudfuse configuration file for use with OpenStack Essex:

    username=demo
    tenant=demo
    api_key=supersecret
    authurl=http://10.10.0.1:5000/v2.0/tokens
    use_openstack=true


BUGS/SHORTCOMINGS:

    * 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
      "application/directory".
    * Cloud Files limits container and object listings to 10,000 items.
      cloudfuse won't list more than that many files in a single directory.


AWESOME CONTRIBUTORS:

    * Tim Dysinger fixed the Makefile              https://github.com/dysinger
    * Chris Wedgwood made du work by fixing stat   https://github.com/cwedgwood
    * Nick Craig-Wood implemented rename           https://github.com/ncw
    * Dillon Amburgey made it compile on clang     https://github.com/dillona


Thanks, and I hope you find it useful.

Michael Barton
<[email protected]>

About

Filesystem (fuse) implemented on Mosso's Cloud Files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 85.5%
  • C 14.5%