Classe: Mongo::Grid::File::Chunk

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/grid/file/chunk.rb

Visão geral

Encapsula o comportamento em torno de blocos GridFS de dados de arquivo.

Desde:

  • 2.0.0

Colapsode resumo constante

collection =

Nome da collection de chunks.

Desde:

  • 2.0.0

'Partes'
DEFAULT_SIZE =

Tamanho padrão para chunks de dados.

Desde:

  • 2.0.0

(255 * 1024)

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(documento) ➤ Chunk

Crie o novo chunk.

Exemplos:

Crie o chunk.

Chunk.new(document)

Parâmetros:

  • documento (BSON::Document)

    O documento a partir do qual criar o chunk.

Desde:

  • 2.0.0



123
124
125
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 123

def inicializar(documento)
  @document = BSON::Documento.Novo(_id: BSON::ObjectId.Novo).mesclar(documento)
end

Detalhes do atributo da instância

#documentBSON::Document (readonly)

Retorna documento O documento a ser armazenado para o chunk.

Retorna:

  • (BSON::Document)

    document O documento a ser armazenado para o chunk.

Desde:

  • 2.0.0



36
37
38
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 36

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.

Exemplos:

Monte os chunks.

Chunk.assemble(chunks)

Parâmetros:

  • Partes (Array <chunk>)

    Os chunks.

Retorna:

  • (string)

    Os dados montados.

Desde:

  • 2.0.0



156
157
158
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 156

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.

Exemplos:

Divida os dados em partes.

Chunks.split(data)

Parâmetros:

  • io (string, IO)

    Os bytes brutos.

  • file_info (Arquivo::Info)

    O arquivo de coleção de arquivos doc.

  • offset (Inteiro) (padrão para: 0)

    O deslocamento.

Retorna:

  • (Array <chunk>)

    Os chunks dos dados.

Desde:

  • 2.0.0



173
174
175
176
177
178
179
180
181
182
183
184
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 173

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.

Exemplos:

Verifique a igualdade do chunk.

chunk == other

Parâmetros:

  • Outro (Objeto)

    O objeto com o qual comparar.

Retorna:

  • (verdadeiro, falso)

    Se os objetos forem iguais.

Desde:

  • 2.0.0



48
49
50
51
52
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 48

def ==(Outro)
  Método false a menos que Outro.is_a?(parte)

  documento == Outro.documento
end

#bson_typeInteger

Obtenha o tipo BSON para um documento chunk .

Exemplos:

Obtenha o tipo BSON.

chunk.bson_type

Retorna:

  • (Inteiro)

    O tipo BSON.

Desde:

  • 2.0.0



62
63
64
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 62

def bson_type
  BSON::Hash::BSON_TYPE
end

#dataBSON::Binary

Obtenha os dados do bloco.

Exemplos:

Obtenha os dados do bloco.

chunk.data

Retorna:

  • (BSON::Binary)

    Os dados do chunk.

Desde:

  • 2.0.0



74
75
76
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 74

def de dados
  documento[:data]
end

#Files_id ➤ BSON::ObjectId

Obtenha o ID dos arquivos.

Exemplos:

Obtenha o ID dos arquivos.

chunk.files_id

Retorna:

  • (BSON::ObjectId)

    O ID dos arquivos .

Desde:

  • 2.0.0



98
99
100
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 98

def arquivos_id
  documento[:files_id]
end

#IDBSON::ObjectId

Obtenha o ID do bloco.

Exemplos:

Obtenha o ID do bloco.

chunk.id

Retorna:

  • (BSON::ObjectId)

    O ID do chunk.

Desde:

  • 2.0.0



86
87
88
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 86

def id
  documento[:_id]
end

#nInteiro

Obtenha a posição do bloco.

Exemplos:

Obtenha a posição do bloco.

chunk.n

Retorna:

  • (Inteiro)

    A posição do chunk.

Desde:

  • 2.0.0



110
111
112
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 110

def n
  documento[:n]
end

#to_bson(buffer = BSON::ByteBuffer.new, _validating_keys = nil) ➤ String

Converta o chunk em BSON para armazenamento.

Exemplos:

Converta o chunk em BSON.

chunk.to_bson

Parâmetros:

  • buffer (BSON::ByteBuffer) (padrão para: BSON::ByteBuffer.new)

    O buffer BSON codificado ao qual anexar.

  • validate_keys (verdadeiro, falso)

    Se as chaves devem ser validadas ao serializar. Esta opção é preterida e não será utilizada. Ele será removido na versão 3.0.

Retorna:

  • (string)

    Os dados BSON brutos.

Desde:

  • 2.0.0



139
140
141
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 139

def to_bson(buffer = BSON::ByteBuffer.Novo, _validating_keys = nada)
  documento.to_bson(buffer)
end