rails3,gridfs和mongomapper:如何提供文件? SEND_DATA?

时间:2010-03-21 17:16:24

标签: ruby-on-rails mongodb mongomapper grip gridfs

我目前正在开发一个带有mongomapper的rails3应用程序和gridfs中的文件存储。 经过一番尝试后,我找到了抓地力,目前还在应用程序中使用它来存储数据。到目前为止,非常好 - 现在我正试图让用户向用户提供文件 - 最好/最快的方法是什么?

自: http://railstips.org/blog/archives/2009/12/23/getting-a-grip-on-gridfs/

似乎有两种方式:

    来自ruby / rails的
  • send_data - 这是推荐的方式吗?够快吗? (我想在部署设置中使用乘客)
  • 写一个导轨金属(参见http://gist.github.com/264077) - 关于如何在rails3上使用它的任何意见或提示?

任何其他想法甚至例子? 非常感谢!

1 个答案:

答案 0 :(得分:2)

我正在使用rack-gridfs来实现这一目的,以便将文件提供给浏览器。该插件来自jnunemaker,他也写过mongomapper。你可能还想看看我的握把叉,在那里我添加了一些文档和方法来查看附件是否存在:

github.com/parasew/grip

对于rails3,您需要执行以下步骤才能使rack-gridfs正常工作:

将以下内容添加到您的Gemfile

gem "jnunemaker-rack-gridfs", :git =>"git://github.com/jnunemaker/rack-gridfs.git"

然后将这些行添加到application.rb(在Application< Rails :: Application块中) - 用实际的mongodb设置替换值。

require 'rack/gridfs'
config.middleware.use Rack::GridFS, :hostname => 'localhost', :port => 27017, :database => "yourdatabase", :prefix => 'gridfs'