Classe: Mongo::Grid::FSBucket::Stream::Read
- Herda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Read
- Inclui:
- Enumerável
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb
Visão geral
Um fluxo que lê arquivos do FSBucket.
Recolhimento do Resumo do atributo de instância
-
#file_id ➤ BSON::ObjectId, Object
Somente leitura
File_id A ID do arquivo que está sendo lido.
-
#fs ⇒ FSBucket
Somente leitura
Fs O bucket fs do qual esse stream lê.
-
#opções ➤ Hash
Somente leitura
Opções As opções de stream.
Recolhimento do Resumo do método de instância
-
#close ➤ BSON::ObjectId, Object
Feche o fluxo de leitura.
-
#fechado? ➤ verdadeiro, falso
O stream está fechado.
-
#cada {|Cada| ... } ➤ Enumerador
Itere por meio de dados de chunk transmitidos do FSBucket.
-
#file_info ➤ Arquivo::Info
Obtenha o documento de informações do arquivo de collection de arquivos para o arquivo que está sendo lido.
-
#initialize(fs, options) ➤ Leia
construtor
Crie um fluxo para ler arquivos do FSBucket.
-
#read ➤ string
Ler todos os dados do arquivo.
-
#read_preference ➤ BSON::Document
Obtenha a read preference.
Detalhes do construtor
#initialize(fs, options) ➤ Leia
Crie um fluxo para ler arquivos do FSBucket.
56 57 58 59 60 61 62 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 56 def inicializar(fs, ) @fs = fs @opções = .dup @file_id = @opções.excluir(:file_id) @opções.congelar @open = true end |
Detalhes do atributo da instância
#file_id ➤ BSON::ObjectId, Object (readonly)
Retorna file_id O ID do arquivo que está sendo lido.
42 43 44 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 42 def file_id @file_id end |
#fs ➤ FSBucket (somente leitura)
Retorna fs O bucket fs do qual esse stream lê.
32 33 34 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 32 def fs @fs end |
#opções ➤ Hash (somente leitura)
Retorna as opções As opções de stream.
37 38 39 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 37 def @opções end |
Detalhes do método de instância
#close ➤ BSON::ObjectId, Object
Feche o fluxo de leitura.
Se o fluxo já estiver fechado, esse método não fará nada.
125 126 127 128 129 130 131 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 125 def Fechar se @open vista.close_query @open = false end file_id end |
#fechado? ➤ true, false
O stream está fechado.
141 142 143 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 141 def fechado? !@open end |
#cada {|Cada| ... } ➤ Enumerador
Itere por meio de dados de chunk transmitidos do FSBucket.
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 78 def cada ensure_readable! informações = file_info num_chunks = (informações.Tamanho + informações.chunk_size - 1) / informações.chunk_size num_read = 0 se block_given? vista.cada_com_index.reduzir(0) fazer |comprimento_read, (doc, index)| chunk = Grade::arquivo::parte.Novo(doc) validar!(index, num_chunks, chunk, comprimento_read) de dados = chunk.de dados.de dados rendimento de dados num_read += 1 comprimento_read += de dados.Tamanho end.toque fazer se num_read < num_chunks aumentar Erro::missingFileChunk.Novo(num_chunks, num_read) end end mais vista.to_enum end end |
#file_info ➤ Arquivo::Info
As informações do arquivo são armazenadas em cache no fluxo. As chamadas subsequentes para file_info retornarão as mesmas informações que a primeira chamada retornou e não farão query do banco de dados de dados novamente.
Obtenha o documento de informações do arquivo de collection de arquivos para o arquivo que está sendo lido.
179 180 181 182 183 184 185 186 187 188 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 179 def file_info @file_info ||= começar doc = [:file_info_doc] || fs.file_collection.find(_id: file_id).primeiro se doc arquivo::informações.Novo(Opções::Mapeador.transformação, transformação(doc, arquivo::informações::mapeamentos.inverter)) mais nada end end end |
#read ➤ string
Ler todos os dados do arquivo.
111 112 113 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 111 def ler to_a.juntar end |
#read_preference ➤ BSON::Document
Esse método sempre retorna uma instância BSON::Document, mesmo que o construtor especifique o tipo de :read como um Hash, não como um BSON::Document.
Obtenha a read preference.
158 159 160 161 162 163 164 165 166 167 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb', linha 158 def read_preference @read_preference ||= começar pref = [:read] || fs.read_preference se BSON::Documento === pref pref mais BSON::Documento.Novo(pref) end end end |