2015-10-04 1 views

Répondre

1

Vous cherchez sur les docs, il semble que cela devrait fonctionner:

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 

Voici comment le diffuser dans un fichier:

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

Ceci renvoie une variable Mongo :: Grid :: File. Je veux obtenir le fichier stocké réel. Jusqu'ici, je n'ai pas eu de chance. –

+0

Que voulez-vous dire par «l'obtenir» ...? – Anthony

+0

Sauvegardez le fichier actuel. –

0

Le code suivant fonctionne:

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.