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

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
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
87
88
89
90
91
92
# Arquivo '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
  @timeout_holder = CsotTimeoutHolder.Novo(
    operation_timeouts: {
      operation_timeout_ms: opções[:timeout_ms],
      inherited_timeout_ms: fs.database.timeout_ms
    }
  )
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
# Arquivo '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
# Arquivo '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
# Arquivo '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
# Arquivo '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



182
183
184
185
186
187
188
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 182

def abortar
  fs.chunks_collection.find(
    { :files_id => file_id },
    @opções.mesclar(timeout_ms: @timeout_holder.remaining_timeout_ms!)
  ).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



135
136
137
138
139
140
141
142
143
144
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 135

def Fechar
  ensure_open!
  update_ comprimento
  file_collection.insert_one(
    file_info,
    @opções.mesclar(timeout_ms: @timeout_holder.remaining_timeout_ms!)
  )
  @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



170
171
172
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 170

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



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 104

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
  a menos que Partes.vazio?
    chunks_collection.insert_many(
      Partes,
      timeout_ms: @timeout_holder.remaining_timeout_ms!
    )
  end
  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



154
155
156
157
158
159
160
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 154

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