2

我有用于从 mongodb 提供文件的中间件

#serve_gridfs_file.rb
class ServeGridfsFile
  def initialize(app)
    @app = app
  end

  def call(env)
    if env["PATH_INFO"] =~ /^\/grid\/(.+)$/
      process_request(env, $1.force_encoding("UTF-8"))
    else
      @app.call(env)
    end
  end

  private  
  def process_request(env, key)
    begin
      Mongo::GridFileSystem.new(Mongoid.database).open(key, 'r') do |file|
        [200, { 'Content-Type' => file.content_type }, [file.read]]
      end
    rescue
     [404, { 'Content-Type' => 'text/plain' }, ['File not found.']]
    end
  end
end

我想使用设计功能来获取 current_user。在那之后,我可以使用一些验证。但是我不知道如何以简单的方式做到这一点。

4

0 回答 0