Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/realestate-com-au/blobby

Various ways of storing BLOBs
https://github.com/realestate-com-au/blobby

Last synced: about 2 months ago
JSON representation

Various ways of storing BLOBs

Awesome Lists containing this project

README

        

# Blobby

[![Build Status](https://travis-ci.org/realestate-com-au/blobby.svg?branch=master)](https://travis-ci.org/realestate-com-au/blobby)

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-s3"](https://github.com/realestate-com-au/blobby-s3)

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

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

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

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