Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do any open-source standalone restful image servers exist?

I'm planning to develop a standalone restful Image Server with the following functionality, but first would like to know if something similar already exists in the open source world (language not important):

  • restful (crud) on master image, e.g: /GET/asd983249as
  • possibly bulk-gets / LIST
  • support for metadata (Creative commons info, dimensions, etc.) that directly relates to the image (references from the domain to these images is NOT included)
  • restful lazy-get of different 'renditions' of an image. i.e if a rendition doesn't exist, it is created upon request. Obviously the original image needs to exist. Different operations are allowed (resize and crop to begin with)
  • e.g: /GET/asd983249as/100x100 (simple resize)
  • allowed dimensions are configurable, so not to get DoS'ed (not as quickly anyway)

Non functional:

  • Reasonable performant / Scalable / HA (yeah I know this doesn't say anything really)
  • Possibly in-mem caching

Thinking about going the Mongo GridFS route, getting MongoDb sharding and replication almost for free. Putting Nginx in front, perhaps (in part) directly using nginx-gridfs (see below) should allow for the rest-stuff and, with some config, some simple caching if gridfs can't handle that for itself (don't know)

Sources:

nginx-gridfs http://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/

Idea of lazy-gets (and a simple implementation of what I'm looking for, although it seemed more hobbyish than an actively maintained project) http://sumitbirla.com/2011/11/how-to-build-a-scalable-caching-resizing-image-server/

other stuff that comes close, but isn't an end solution https://github.com/adamdbradley/foresight.js/wiki/Server-Resizing-Images

Anything that already does this?

like image 363
Geert-Jan Avatar asked Sep 05 '12 20:09

Geert-Jan


1 Answers

I would recommend you this project: https://github.com/imbo/imbo

Its easy to use, stable and used in big projects.

But I am still curious about alternatives.

like image 129
Adam Lukaszczyk Avatar answered Sep 18 '22 19:09

Adam Lukaszczyk