Skip to content

Rack middleware for serving files stored in MongoDB GridFS

License

Notifications You must be signed in to change notification settings

mig-hub/rack-grid-serve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rack Grid Serve

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.

How it works

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.

Testing

Run tests this way:

bundle exec ruby -I lib test.rb

About

Rack middleware for serving files stored in MongoDB GridFS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages