Classificação: Mongo::Grid::FSBucket::Stream::Write

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb

Visão geral

Um fluxo que escreve arquivos no FSBucket.

Desde:

  • 2.1.0

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(fs, options) ➤ Escrever

Crie um fluxo para escrever arquivos no FSBucket.

Exemplos:

Crie o stream.

Stream::Write.new(fs, options)

Parâmetros:

  • fs (FSBucket)

    O objeto de bucket GridFS.

  • opções (Hash)

    As opções do fluxo de gravação.

  • opciona (Hash)

    um conjunto personalizável de opções

Hash de opções (opções):

  • :file_id (Objeto)

    O ID do arquivo. Um ObjectId é gerado se o ID do arquivo não for fornecido.

  • :write (Hash)

    Obsoleto. Equivalente à opção :write_concern.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro|String, : fsync => Booleano, :j => Booleano.

Desde:

  • 2.1.0



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 70

def inicializar(fs, opções)
  @fs = fs
  @ comprimento = 0
  @n = 0
  @file_id = opções[:file_id] || BSON::ObjectId.Novo
  @opções = opções.dup
=begin Suporte ao objeto WriteConcern
  se @options[:write_concern].is_a?(WriteConcern::Base)
    # Armazene a instância em cache para que não a reconstruamos desnecessariamente.
    @write_concern = @options[:write_concern]
    @options[:write_concern] = @write_concern.options
  end
=end
  @opções.congelar
  @filename = @opções[:filename]
  @open = true
end

Detalhes do atributo da instância

#file_id ➤ Objeto (somente leitura)

Retorna file_id A ID do arquivo que está sendo carregado.

Retorna:

  • (Objeto)

    file_id A ID do arquivo que está sendo carregado.

Desde:

  • 2.1.0



36
37
38
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 36

def file_id
  @file_id
end

#filenamestring (somente leitura)

Retorna o nome do arquivo O nome do arquivo que está sendo carregado.

Retorna:

  • (string)

    filename O nome do arquivo que está sendo carregado.

Desde:

  • 2.1.0



41
42
43
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 41

def Nome do Arquivo
  @filename
end

#fs ➤ FSBucket (somente leitura)

Retorna fs O bucket fs no qual esse stream é gravado.

Retorna:

  • (FSBucket)

    fs O bucket fs no qual esse stream grava.

Desde:

  • 2.1.0



31
32
33
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 31

def fs
  @fs
end

#opçõesHash (somente leitura)

Retorna opções As opções de fluxo de gravação.

Retorna:

  • (Hash)

    options As opções do write stream.

Desde:

  • 2.1.0



46
47
48
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 46

def opções
  @opções
end

Detalhes do método de instância

#aborttrue

Aborte o upload excluindo todos os chunks já inseridos.

Exemplos:

Aborte a operação de escrita.

stream.abort

Retorna:

  • (verdadeiro)

    Verdadeiro se a operação foi abortada e o fluxo está fechado.

Desde:

  • 2.1.0



168
169
170
171
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 168

def abortar
  fs.chunks_collection.find({ :files_id => file_id }, @opções).delete_many
  (@open = false) || true
end

#closeBSON::ObjectId, Object

Feche o fluxo de gravação.

Exemplos:

Feche o stream.

stream.close

Retorna:

  • (BSON::ObjectId, Object)

    O ID do arquivo.

Aumenta:

Desde:

  • 2.1.0



124
125
126
127
128
129
130
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 124

def Fechar
  ensure_open!
  update_ comprimento
  file_collection.insert_one(file_info, @opções)
  @open = false
  file_id
end

#fechado?true, false

O stream está fechado.

Exemplos:

O stream está fechado.

stream.closed?

Retorna:

  • (verdadeiro, falso)

    Se o stream está fechado.

Desde:

  • 2.1.0



156
157
158
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 156

def fechado?
  !@open
end

#write(io) ➤ Stream::Write

Grave no bucket GridFS a partir do fluxo de origem ou de uma string.

Exemplos:

Grave no GridFS.

stream.write(io)

Parâmetros:

  • io (string | IO)

    A string ou objeto IO de onde fazer upload.

Retorna:

Desde:

  • 2.1.0



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 98

def escrever(io)
  ensure_open!
  @indexes ||= ensure_indexes!
  @ comprimento += se io.respond_to?(:bytesize)
    # Objetos de string
    io.bytesize
  mais
    # Objetos IO
    io.Tamanho
  end
  Partes = arquivo::parte.dividir(io, file_info, @n)
  @n += Partes.Tamanho
  chunks_collection.insert_many(Partes) a menos que Partes.vazio?
  auto
end

#write_concern ➤ Mongo::WriteConcern

Obtenha o preocupação de gravação usado ao fazer o upload.

Exemplos:

Obtenha a preocupação de gravação.

stream.write_concern

Retorna:

Desde:

  • 2.1.0



140
141
142
143
144
145
146
# File 'build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb', linha 140

def write_concern
  @write_concern ||= se wco = @opções[:write_concern] || @opções[:write]
    Escreva preocupação.obter(wco)
  mais
    fs.write_concern
  end
end