Я пытаюсь получить двоичный файл, который я успешно сохранил с помощью GridFS. Я использую MongoDB v3.0.6, Ruby 2.0.0 и MongoDB Ruby Driver v 2.0.1 на Mac OS X.Извлечь файл MongoDB GridFS с помощью Ruby
Есть ли рабочий пример?
Я пытаюсь получить двоичный файл, который я успешно сохранил с помощью GridFS. Я использую MongoDB v3.0.6, Ruby 2.0.0 и MongoDB Ruby Driver v 2.0.1 на Mac OS X.Извлечь файл MongoDB GridFS с помощью Ruby
Есть ли рабочий пример?
Глядя на документы, кажется, что это должно работать:
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
Следующий код работает:
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.
Возвращает переменную Mongo :: Grid :: File. Я хочу получить фактический сохраненный файл. До сих пор мне не повезло. –
Что значит «получить» это ...? – Anthony
Сохраните файл. –