/blobby

Various ways of storing BLOBs

Primary LanguageRuby

Blobby

Build Status

This gem provides a standard interface for storing big chunks of data.

Usage

It supports popular BLOB operations such as reading:

store["key"].read

writing:

store["key"].write("some content")
store["key"].write(File.open("kitty.png"))

checking for existance:

store["key"].exists?

and even deleting:

store["key"].delete

This gem provides several "store" implementations:

# on disk
Blobby::FilesystemStore.new("/big/data")

# in memory
Blobby::InMemoryStore.new

# generic HTTP
Blobby::HttpStore.new("http://attachment-store/objects")

# fake success
Blobby::FakeSuccessStore.new

Other gems provide additional implementations:

Blobby.store provides a convenient way to construct an appropriate implementation, given a URI (or psuedo-URI):

Blobby.store("file:///tmp")
# => #<Blobby::FilesystemStore ...>

Blobby.store("mem:")
# => #<Blobby::InMemoryStore ...>

Blobby.store("http://storage.com/mystuff/")
# => #<Blobby::HttpStore ...>