After evaluating several object stores, we came to the conclusion that OpenStack Swift was the one closest to our needs. Swift is described as "a highly available, distributed, eventually consistent object/blob store".
Having made the choice, we now needed to find a suitable client for interacting with our cluster programmatically.
It needed to meet the following criteria:
- Written in .NET
- Recent community activity
- Support for .NET core should at least be on the roadmap
Having found none, we decided to write our own. We're introducing SwiftClient, an open-source .NET client for OpenStack Swift that covers most of the Swift API, handles authentication and large object streaming. Besides the Swift .NET client, the project contains an ASP.NET 5 demo and a cross-platform console application suitable for bulk upload of an entire directory tree and large object operations. Our build process runs on Ubuntu and Windows, testing is done against a Swift docker container before each publish on NuGet.
Any contributions are welcomed, fell free to open an issue on our GitHub repository to get in contact with us.