Last week we (the dev team of Memset) released a new version of different open source projects which objective is to provide a convenient file system-alike interface for OpenStack Object Storage (codename
As you may know,
Swift is a object storage and not a file system or real-time data storage system. To explain it short: you can store, retrieve and delete objects over a RESTful HTTP API, but not all the operations that you would expect on a real file system are available.
Swift works very well as a long-term storage or when you need to store static data, and its
API is compatible with Rackspace Cloud Files, so you have several applications that can communicate with it out of the box (or even with explicit support, for example with Cyberduck and OpenStack Object Storage protocol).
When we started working in a product based on
Swift (to be released soon, stay tuned!), we found that the pseudo-hierarchical directories support on Swift has lots of possibilities, and… wouldn’t it be great to use any of your favourite file transfer applications directly on
Nick Craig-Wood (Memset’s Technical Director) started looking for any open source doing that, and we found the project of Chmouel Boudjnah: ftp-cloudfs. We were more interested in a
SFTP interface, but Chomuel approach was very nice (MIT licensed), so we decided to put some work on his code, writing a fake file system interface layer to make some specific applications work over
After some love (other people call this QA),
ftp-cloudfs has reached version 0.9, and we believe it’s in good shape to be used in a real-world™ environment.
At the same time we started to work in a
SFTP implementation of the same idea, using Paramiko to deal with the protocol details, and thanks to reusing some code from
ftp-cloudfs, we promptly released sftp-cloudfs as open source.
We’re planning to refactorize the code and move out the file system layer to a different project (right now
sftp-cloudfs depends on
ftp-cloudfs, which is not optimal), but as today I think we have reached an important milestone in both projects.
With this release we also added the packages to PyPi to make as easy as possible to start playing with the daemons, including our most crazy project to provide a full file system interface through FUSE: pycloudfuse.
So if you want to give them a go you can download the code, or try with
$ pip install ftp-cloudfs
and for the
$ pip install sftp-cloudfs
pycloudfuse mostly works, but it’s not in the same good shape than the other two projects and it needs more love (again, talking about QA here). Any help is welcome!