The purpose of Rack::GridServe
is to provide an alternative to
Rack::Gridfs which works with the Mongo
ruby driver version 2.0
and above. This driver has a different API and while the Rack::Gridfs
team is working on it, it is not yet ready.
While Rack::GridServe
can be used the same way, it is by no mean
as complete and well crafted as Rack::Gridfs
. So I recommend that
you switch back when their next version is ready.
Until then, the function is the same, you can mount the middleware
in order to serve images which are hosted in the GridFS
part
of a Mongo
database.
Here is how you mount it in your config.ru
:
require 'rack/grid_serve'
use Rack::GridServe, {
db: $db,
prefix: 'gridfs', # Path prefix, default is "gridfs"
cache_control: 'no-cache' # Default is "no-cache"
}
These are the only options so far.
Rack::GridServe
sets the ETag
and Last-Modified
response
headers and uses Rack::ConditionalGet
to let the browser use
cached version of the files when possible.
Run tests this way:
bundle exec ruby -I lib test.rb