Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
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 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] 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] 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@example.com>