<div dir="ltr"><div>We've been offering public object store services for roughly half a year now. In the past few months, we received a wide range of responses from our customers. Tech-savvy customers are very happy with this offering, and quite a few are busy migrating their existing storage solutions to our object store. </div>
<div><br></div><div>However, we find that several customers, especially those coming from shared hosting solutions, struggle to grasp the abstract ideas behind object storage. They struggle with two things: authentication against keystone, which they consider too complicated, and having a user interface that is totally distinct from the actual object store.</div>
<div><br></div><div>To help these users, we've developed two middleware projects: swift_basicauth and better_staticweb. swift_basicauth allows web browsers and general purpose HTTP clients to access object stores, without having to contact keystone. The middleware interprets the authentication, and then fetches a token based on that authentication. With that token, the rest of the request is processed. This enables a wide range of HTTP clients to access the object store. While the primary aim was unlocking the objectstore for web-browsers, we quickly discovered the convenience of using it with curl: "curl --user uid:pwd -X PUT "<a href="https://static.example.net/the_file">https://static.example.net/the_file</a>" -T the_file".</div>
<div><br></div><div>The second middleware we developed was named better_staticweb (sorry for the pretentious name). It is similar to static-web, in fact is is mostly compatible. However, web-listings is enabled by default, even for authenticated access (useful in combination with basic auth). It enables the user to visualize his object store as a less-abstract concept. Better_staticweb looks at the http Accept header to determine whether or not to respond with a listing. It still listens to the same meta-headers, but it assumes different defaults. We've gone through quite a bit of testing to guarantee that it doesn't interfere with regular API usage.</div>
<div><br></div><div>Both middleware projects are released under the Apache 2.0 licence, and can be found on our github page:</div><div><a href="https://github.com/CloudVPS/better-staticweb">https://github.com/CloudVPS/better-staticweb</a></div>
<div><a href="https://github.com/CloudVPS/swift-basicauth">https://github.com/CloudVPS/swift-basicauth</a></div><div><br></div><div>--</div><div><br></div><div>Koert van der Veer - Senior Developer @ CloudVPS</div><div>CloudVPS - High Availability Cloud Solutions</div>
<div>w: <a href="http://www.cloudvps.com/">http://www.cloudvps.com/</a></div><div>m: <a href="mailto:koert@cloudvps.com">koert@cloudvps.com</a></div><div><br></div></div>