如何提供存储在cassandra数据库中的图像?

时间:2012-09-09 09:28:49

标签: django apache nginx cassandra

对于django项目,我计划将jpegs存储到cassandra数据库中。 为网站提供图像的最佳方式是什么? 我已经计划构建自己的wsgi模块,但有更好的方法:是否存在nginx或apache模块?

3 个答案:

答案 0 :(得分:3)

我们使用带有缓存层的PHP(包括磁盘和内存,例如Varnish)从Cassandra提供小文件(<5 MB)。

答案 1 :(得分:1)

Astyanax支持文件流入和流出cassandra。

答案 2 :(得分:0)

您可以使用openresty和我开发的Lua CQL client

用法是这样的:

cassandra = require("cassandra")
local session = cassandra.new()
session:set_timeout(1000)
assert(session:connect("127.0.0.1", 9042))
assert(session:set_keyspace("images"))
local rows, err = session:execute("SELECT * from chunks where chunk_id = ?", {chunk})
if not rows or #rows == 0 then
  return ngx.exit(ngx.HTTP_NOT_FOUND)
end
local data = rows[1].data
ngx.header.content_type = "image/jpeg"
ngx.header.content_length = #data
ngx.print(data)