使用Ruby检索MongoDB GridFS文件

时间:2015-10-04 19:43:57

标签: ruby mongodb gridfs

我正在尝试检索使用GridFS成功存储的二进制文件。 我在Mac OS X上使用MongoDB v3.0.6,Ruby 2.0.0和MongoDB Ruby Driver v 2.0.1。

有一个有效的例子吗?

2 个答案:

答案 0 :(得分:1)

查看文档,似乎这应该有效:

client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'music')
client.database.fs.find_one(:filename => 'new-file.txt') #=> Returns a Mongo::Grid::File

以下是将其流式传输到文件的方法:

client.database.fs.open_download_stream(file_id) do |stream|
  IO.write('some-file', stream.read)
end

答案 1 :(得分:0)

以下代码有效:

require 'rubygems'
require 'mongo'
include Mongo

$client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'garden')
Mongo::Logger.logger.level = ::Logger::ERROR
$files = $client[:files]

puts 'connected!'

# Upload file
fs = $client.database.fs 
$file = File.open("delete.rb")
$file_id = fs.upload_from_stream("delete.rb", $file)
$file.close

$file_to_write = File.open('perfectCopy', 'w')
fs.download_to_stream($file_id, $file_to_write)

Mihalis。