Classe: Mongo::Grid::FSBucket::Stream::Read
- Herda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Read
- Inclui:
- Enumerável
- Definido em:
- 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.
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 54 def inicializar(fs, ) @fs = fs @opções = .dup @file_id = @opções.excluir(:file_id) @opções.congelar @open = true @timeout_holder = CsotTimeoutHolder.Novo( operation_timeouts: { operation_timeout_ms: [:timeout_ms], inherited_timeout_ms: fs.database.timeout_ms } ) end |
Detalhes do atributo da instância
#file_id ➤ BSON::ObjectId, Object (readonly)
Retorna file_id O ID do arquivo que está sendo lido.
40 41 42 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 40 def file_id @file_id end |
#fs ➤ FSBucket (somente leitura)
Retorna fs O bucket fs do qual esse stream lê.
30 31 32 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 30 def fs @fs end |
#opções ➤ Hash (somente leitura)
Retorna as opções As opções de stream.
35 36 37 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 35 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.
127 128 129 130 131 132 133 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 127 def Fechar se @open vista.close_query @open = false end file_id end |
#fechado? ➤ true, false
O stream está fechado.
143 144 145 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 143 def fechado? !@open end |
#cada {|Cada| ... } ➤ Enumerador
Itere por meio de dados de chunk transmitidos do FSBucket.
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 82 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 aumentar Erro::missingFileChunk.Novo(num_chunks, num_read) se num_read < num_chunks 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.
181 182 183 184 185 186 187 188 189 190 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 181 def file_info @file_info ||= começar doc = [:file_info_doc] || fs.file_collection.find( { _id: file_id }, { timeout_ms: @timeout_holder.remaining_timeout_ms! } ).primeiro arquivo::informações.Novo(Opções::Mapeador.transformação, transformação(doc, arquivo::informações::mapeamentos.inverter)) se doc end end |
#read ➤ string
Ler todos os dados do arquivo.
113 114 115 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 113 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.
160 161 162 163 164 165 166 167 168 169 |
# Arquivo 'lib/mongo/grid/stream/read.rb', linha 160 def read_preference @read_preference ||= começar pref = [:read] || fs.read_preference se pref.is_a?(BSON::Documento) pref mais BSON::Documento.Novo(pref) end end end |