RackSpace Cloud Files and Ubuntu
Reviewing the Options
RackSpace Cloud Files provide a
cheap storage solution for private and public files. While the
web interface provided by RackSpace is good it is limited to file
uploads and downloads and does not have basic facilities such
synchronisation and backup. One key point to note is that
while I have not investigated fully the containers used by RackSpace
they do not appear to naturally allow for conventional directory trees
and any backup and synchronisation. However, I was still interested in
providing a means of easily uploading and downloading files through the
Ubuntu file system.
Initially I looked at the python scripts which are maintained by
Rackspace for developers wishing to develop applications which link to
RackSpace Cloud Files. Older versions of these scripts are
directly installable from the Ubuntu repositories with newer versions
avaialble from
https://github.com/redbo/cloudfuse.
If you decide to use these tools and you are using the London based
RackSpace servers then it is important to read the manual pages at http://packages.python.org/python-cloudfiles/ as the london servers have a different authorisation url.
Cloudfuse
The Python CloudFile scripts do not provide an easy way forward for
synchronising files. Cloudfuse, however, offers integration with
Nautilus and, therefore, the possibility of using a range of backup and
synchronisation applications. Cloudfuse is available from
https://github.com/redbo/cloudfuse and from here.
The current version (Feb 2011) intially does not appear to support the
UK based version of RackSpace Cloud Files, however, it is possible to
make the necessary adjustment in the hidden file containing your login
details ($HOME/.cloudfuse). The .cloudfuse file should be in this
format.
username=[username]
api_key=[api key]
authurl=https://lon.auth.api.rackspacecloud.com/v1.0
It should be noted that the user name, API key and the authurl should
not be surrounded by any quotation characters and it would also appear
that there should be no spaces after the equals sign. Cloudfuse
has certain dependencies ~ libcurl, fuse and libxml2 and the
development version of libxml2. The dependencies should be loaded
before running using:
apt-get install build-essential libcurl4-openssl-dev libxml2-dev libssl-dev libfuse-dev
....then compile cloudfuse within the folder containing the downloaded file
./configure
make
sudo make install
BUGS/SHORTCOMINGS as :
- Doesn't implement rename(). There's no good way to do this
with the Cloud Files API. Unfortunately, this makes cloudfuse
considerably less useful in Finder, as it expects to be able to rename
a lot.
- 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 this number of directories/files.
CloudFilesLink
This
is a simple GUI front end to Cloudfuse with the added option of
unmounting the volume. Since it is based on Cloudfuse it has the
same limitations as Cloudfuse (see above). To download the file
click on the button below. You may also wish to use the
icon by right -clicking and saving to your local disk.
CloudFilesLink is supplied under the GPL licence without any warranty whatsoever.