As you may already know, OpenStack Swift doesn’t provide a home-grown client–that is, user-friendly software that includes a practical GUI and various features like those you can find for commercial projects such as Amazon S3 or Dropbox–for any platform.
So the only way to use OpenStack Swift, say, in Windows, is through an offsite client. In this article, I will compare the advantages and disadvantages of different Swift clients for that are available for Windows.
Please note that most clients use OpenStack Keystone as a backend identity service for Swift because it enables seamless user management. (We’ll talk you about the various advantages of OpenStack Keystone in a future article.) So clients would be connected to the Swift+Keystone environment.
There are two ways to connect offsite clients to Swift:
- One way is through Swift’s native API. Moreover, some clients are able to connect to Keystone directly. In my opinion, this is the best way to use Swift.
- Some clients are actually Amazon Simple Storage Service (S3) clients. Fortunately, Swift is capable of behaving as S3 storage, so those clients can connect through the S3 API.
I’ll be reviewing both Swift- and S3 API-compatible software in this article.
Gladient Cloud Desktop
Gladient Cloud Desktop is a commercial product. It is capable of connecting to different types of cloud storage such as Swift, Amazon S3, and Rackspace, as well as ordinary FTP sources. You are able to choose the type of Swift connection based on whether there is a Keystone service, as well as on its API version.
The shareware version allows you to choose a single container from your account and manipulate it with ease. Once you connect to your cloud, Gladient creates an additional network disk in your system so that you can use it as a regular network folder.
What is not as helpful, is that you are not able to rename internal folders inside one container. Because all of these folders are presented as regular files, and all of the inside files in the cloud are named in the “folder/file” format, when you attempt to rename a folder, you are actually asking the system to rename all of the inside files, and the system doesn’t permit you to do that.
The full version (up to $49 per desktop) allows you to use different containers in one session. The most powerful feature is that different versions of modified files are available.
Two versions of Cloudberry Explorer are available for download. The free version enables you to create one account to connect to Swift storage. It cannot use encryption and compression or multi-threading, which are available in the pro version ($40 per desktop). What you do get is a commander-like client that displays all your containers and files. It also enables you to select a local folder for synchronization with a cloud container. However, it cannot synchronize those folders automatically. Once you make some changes in your local folder, you need to synchronize it manually. Well, this discovery may force you to choose something else.
CloudBerry Online Backup
CloudBerryLabs also provides CloudBerry Online Backup. You get a 30-day free trial, and a $30-per desktop license thereafter.
This software makes you more independent of your internet connection because it behaves like Dropbox. You manage one or more local folders that synchronize with your cloud storage once per minute. One of its nice features (in my opinion, all clients should have it) is that you can easily manage your file versions. Clearly, any user would be glad be able to restore the old versions of any file. With CloudBerry Online Backup, it is enough to basically push a “Restore” button and check the version of the file you need (specifically, by choosing the date the file was modified). The file will be restored immediately to the original folder.
Both CloudBerryLabs products operate well enough with international encodings. If I were to pick one, CloudBerry Online Backup looks like the more well-rounded product.
If you have your Swift installation operating with S3 support, you could pick up WebDrive, written by SouthRiver Technologies. It can connect to several different types of cloud storage, such as S3, Dropbox, or secured FTP.
If you want to connect it to your Swift, you would first create an access key/secret key pair with your identity service and use them as credentials in the client. If you use Keystone, would execute the command
keystone ec2-credentials-create --tenant-id XXX --user-id XXX
on your Swift server in order to get such a pair. You would then use it instead of the regular Amazon credentials.
What it actually does is add a network drive to your system. You are free to choose one container as your root folder, or you may leave a blank field during the connection creation so it would show you the tree of your containers as a root folder. This product has two disadvantages. First, you are not permitted to rename the containers and internal folders. Secondly, when you create a blank file, an unknown header is added, so it turns into some xml-like file. (This may be the result of incorrect settings for my Swift environment, but none of the other clients did that.)
You may try the product for 20 days; after that, it goes up to $70.
The only free product I’ve been able to find is a Cyberduck client. It offers two possibilities for operating with your Swift cloud storage. OpenStack.org provides information about how to use it to connect directly through the native OpenStack API.
Unfortunately, I didn’t get far with it (I guess it’s because the method described could only be implemented on systems without Keystone service), so I’ve connected it through the S3 API. That only works on port 443 with SSL encryption, so you have to set up your Swift to listen on that port. Moreover, you have to use the access key/secret key pair again. While connected using CyberDuck, you may either manipulate your containers and files with the help of its explorer, or you can synchronize it with one or more local folders of your choice. There is no option for automatic synchronization, so you’d be forced to do that periodically.
Cyberduck also allows you to connect to a wide range of cloud services such as FTP, sFTP, and Google Cloud Storage.
S3 Browser is a free (for personal use only) browser that allows you to manage your S3 cloud files, so you have to get your Swift set up as S3 cloud storage in order to use it. So again, you have to use that awkward access key/secret key pair for the Keystone authentication service.
You can download, upload, and edit your files, as well as drag and drop them from/to your local folders.
There is also a pro version of S3 Browser that allows you to download and upload files with multithread support. In fact, you have to get this version if you want to use it for purposes other than personal. The cost of one license is $30.
On one particular menu of S3 Browser, you’ll see a “Mount as Windows Drive” option. Click it and you will be offered the opportunity to purchase TntDrive.
This is a fully commercial product (it costs up to $60 for commercial use or up to $40 for personal use), but you have a 30-day trial period to test and evaluate.
This software has a benefit that makes it stand out among comparable products. It is able not only to mount your cloud storage as a network drive, but also to connect it to your system as a removable drive (which actually is not always recommended by developers).
Moreover, there are several other useful features, such as caching of READ requests to improve performance and the ability to create an auto-installer with predefined credentials and a URL in order to automate product distribution. That could be extremely useful if you need to set up a lot of workstations with a cloud drive attached to them.
I’ve only found a single disadvantage that could overshadow the benefits of this product. It doesn’t support versioning—consequently, you will not be able to obtain your modified or deleted files. You can just use your cloud storage as a flash drive.
So there are actually a number of Windows-based clients on the market that can be used with your Swift cloud storage. All of them have their own advantages, but you can’t actually find a single client that is capable of satisfying all of your users’ needs. So you should first decide whether you need to manage your files on the fly, then whether you need to be able to switch your Swift to S3 mode, and, thirdly, if you are going to purchase a client or use a freeware product. Answering these questions will determine your selection.