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

'chunks'.congelar
DEFAULT_SIZE =

Tamanho padrão para chunks de dados.

Desde:

  • 2.0.0

(255 * 1024).congelar

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



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

#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



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.

Exemplos:

Monte os chunks.

Chunk.assemble(chunks)

Parâmetros:

  • Partes (Array <chunk>)

    Os chunks.

Retorna:

  • (string)

    Os dados montados.

Desde:

  • 2.0.0



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.

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



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.

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



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_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



64
65
66
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 64

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



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.

Exemplos:

Obtenha o ID dos arquivos.

chunk.files_id

Retorna:

  • (BSON::ObjectId)

    O ID dos arquivos .

Desde:

  • 2.0.0



100
101
102
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 100

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



88
89
90
# Arquivo 'lib/mongo/grid/file/chunk.rb', linha 88

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



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.

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) (padrão para: nil)

    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



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