14

我计划开发一个具有以下功能的独立的静态图像服务器,但首先想知道开源世界中是否已经存在类似的东西(语言不重要):

  • 主图像上的宁静(粗糙),例如:/GET/asd983249as
  • 可能批量获取 / LIST
  • 支持与图像直接相关的元数据(知识共享信息、尺寸等)(不包括从域到这些图像的引用)
  • 宁静的懒惰获取图像的不同“再现”。即,如果演绎版不存在,则根据请求创建它。显然原始图像需要存在。允许不同的操作(调整大小和裁剪开始)
  • 例如:(/GET/asd983249as/100x100简单调整大小)
  • 允许的尺寸是可配置的,所以不要被 DoS 攻击(反正不是那么快)

非功能性:

  • 合理的性能/可扩展/ HA(是的,我知道这并没有真正说明什么)
  • 可能是内存缓存

考虑走 Mongo GridFS 路线,几乎免费获得 MongoDb 分片和复制。将 Nginx 放在前面,也许(部分)直接使用 nginx-gridfs(见下文)应该允许其余的东西,并且通过一些配置,如果 gridfs 无法自行处理(不知道)一些简单的缓存

资料来源:

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

懒惰的想法(以及我正在寻找的简单实现,尽管它似乎比积极维护的项目更业余) http://sumitbirla.com/2011/11/how-to-build-a-scalable -缓存调整图像服务器/

其他接近但不是最终解决方案的东西 https://github.com/adamdbradley/foresight.js/wiki/Server-Resizing-Images

任何已经这样做的东西?

4

2 回答 2

7

我会向你推荐这个项目: https ://github.com/imbo/imbo

它易于使用,稳定并用于大型项目。

但我仍然对替代方案感到好奇。

于 2013-11-06T06:50:55.353 回答
0

我正在寻找一个项目的选项,我在下面找到了这两个。它们并不完全符合您的要求,但看起来相当成熟。不过,我还没有与他们打交道的经验。

  1. https://imageresizing.net/ Essential 版是开源的。更高级的解决方案不是。
  2. http://thumborize.me/(与相关的github)有许多有趣的功能,如人脸检测、新编解码器、智能裁剪。
于 2020-06-19T07:39:37.993 回答