I recently started noodling with this concept and built a working blob storage service using node.js and C*. I setup a basic web server using the express web server where you could POST binary files to the server where they would get chunked and assigned to a user and bucket, in the spirit of S3. Then when you retrieved the file with a GET it would reassemble the chunks and push it out. What was really nice about node.js is I could retrieve all the chunks in parallel asynchronously. It was just for fun, but we have considered fleshing it out for use in our organization. Here is the schema I developed:
CREATE TABLE object.users ( name text PRIMARY KEY, buckets set<text>, password text ); CREATE TABLE object.objects ( user text, bucket text, name text, chunks int, id uuid, size int, type text, PRIMARY KEY ((user, bucket), name) ); CREATE TABLE object.chunks ( file_id uuid, num int, data blob, PRIMARY KEY (file_id, num) ); For your purposes you could modify the objects table to keep a revision id or timeuuid for looking at previous versions. If you want some insight into how the code worked give me a shout.