我有用于从 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。在那之后,我可以使用一些验证。但是我不知道如何以简单的方式做到这一点。