Classe: Mongo::Grid::File::Chunk
- Herda:
-
Objeto
- Objeto
- Mongo::Grid::File::Chunk
- Definido em:
- lib/mongo/grid/file/chunk.rb
Visão geral
Encapsula o comportamento em torno de blocos GridFS de dados de arquivo.
Colapsode resumo constante
- collection =
Nome da collection de chunks.
'chunks'.congelar
- DEFAULT_SIZE =
Tamanho padrão para chunks de dados.
(255 * 1024).congelar
Recolhimento do Resumo do atributo de instância
-
#document ➤ BSON::Document
Somente leitura
Documento O documento a ser armazenado para o chunk.
Recolhimento do Resumo do método de classe
-
.montar(pedaços) ➤ string
privado
Pega uma array de chunks e os monta de volta na peça completa de dados brutos.
-
.divisão(io, file_info, offset = 0) } Array<Chunk>
privado
Divida os dados fornecidos em vários blocos.
Recolhimento do Resumo do método de instância
-
#==(outro) ➤ verdadeiro, falso
Verifique a igualdade do chunk.
-
#bson_type ⇒ Integer
Obtenha o tipo BSON para um documento chunk .
-
#data ➤ BSON::Binary
Obtenha os dados do bloco.
-
#Files_id ➤ BSON::ObjectId
Obtenha o ID dos arquivos.
-
#id ⇒ BSON::ObjectId
Obtenha o ID do bloco.
-
#initialize(documento) ➤ Chunk
construtor
Crie o novo chunk.
-
#n ➤ Inteiro
Obtenha a posição do bloco.
-
#to_bson(buffer = BSON::ByteBuffer.new, validate_keys = nil) ➤ string
Converta o chunk para BSON para armazenamento.
Detalhes do construtor
#initialize(documento) ➤ Chunk
Crie o novo chunk.
125 126 127 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 125 def inicializar(documento) @document = BSON::Documento.Novo(:_id => BSON::ObjectId.Novo).mesclar(documento) end |
Detalhes do atributo da instância
#document ➤ BSON::Document (readonly)
Retorna documento O documento a ser armazenado para o chunk.
39 40 41 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 39 def documento @document end |
Detalhes do método de classe
.montar(pedaços) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Pega uma array de chunks e os monta de volta na peça completa de dados brutos.
159 160 161 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 159 def montar(Partes) Partes.reduzir(+''){ |de dados, chunk| de dados << chunk.de dados.de dados } end |
.divisão(io, file_info, offset = 0) ➤ Array<Chunk>
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Divida os dados fornecidos em vários blocos.
176 177 178 179 180 181 182 183 184 185 186 187 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 176 def dividir(io, file_info, offset = 0) io = StringIO.Novo(io) se io.is_a?(String) peças = Enumerador.Novo { |y| y << io.ler(file_info.chunk_size) até que io.eof? } peças.map.with_index fazer |bytes, n| file_info.update_md5(bytes) parte.Novo( dados: BSON::Binário.Novo(bytes), arquivos_id: file_info.id, n: n + offset ) end end |
Detalhes do método de instância
#==(outro) ➤ true, false
Verifique a igualdade do chunk.
51 52 53 54 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 51 def ==(Outro) Método false a menos que Outro.is_a?(parte) documento == Outro.documento end |
#bson_type ⇒ Integer
Obtenha o tipo BSON para um documento chunk .
64 65 66 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 64 def bson_type BSON::Hash::BSON_TYPE end |
#data ⇒ BSON::Binary
Obtenha os dados do bloco.
76 77 78 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 76 def de dados documento[:data] end |
#Files_id ➤ BSON::ObjectId
Obtenha o ID dos arquivos.
100 101 102 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 100 def arquivos_id documento[:files_id] end |
#ID ➤ BSON::ObjectId
Obtenha o ID do bloco.
88 89 90 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 88 def id documento[:_id] end |
#n ➤ Inteiro
Obtenha a posição do bloco.
112 113 114 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 112 def n documento[:n] end |
#to_bson(buffer = BSON::ByteBuffer.new, validate_keys = nil) ➤ string
Converta o chunk para BSON para armazenamento.
141 142 143 |
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 141 def to_bson(buffer = BSON::ByteBuffer.Novo, validate_keys = nada) documento.to_bson(buffer) end |