Classificação: Mongo::Grid::FSBucket::Stream::Write
- Herda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Write
- Definido em:
- lib/mongo/grid/stream/write.rb
Visão geral
Um fluxo que escreve arquivos no FSBucket.
Recolhimento do Resumo do atributo de instância
-
#file_id ➤ Objeto
Somente leitura
File_id A ID do arquivo que está sendo carregado.
-
#filename ➤ string
Somente leitura
Nome do arquivo O nome do arquivo que está sendo carregado.
-
#fs ⇒ FSBucket
Somente leitura
Fs O bucket fs no qual esse stream é gravado.
-
#opções ➤ Hash
Somente leitura
Opções As opções de fluxo de gravação.
Recolhimento do Resumo do método de instância
-
#abort ➤ true
Aborte o upload excluindo todos os chunks já inseridos.
-
#close ➤ BSON::ObjectId, Object
Feche o fluxo de gravação.
-
#fechado? ➤ verdadeiro, falso
O stream está fechado.
-
#initialize(fs, options) ➤ Escrever
construtor
Crie um fluxo para escrever arquivos no FSBucket.
-
#write(io) ➤ Stream::Write
Grave no bucket GridFS a partir do fluxo de origem ou de uma string.
-
#write_concern ➤ Mongo::WriteConcern
Obtenha o preocupação de gravação usado ao fazer o upload.
Detalhes do construtor
#initialize(fs, options) ➤ Escrever
Crie um fluxo para escrever arquivos no FSBucket.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 67 def inicializar(fs, ) @fs = fs @ comprimento = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.Novo @opções = .dup # Suporte ao objeto WriteConcern # if @options[:write_concern].is_a?(WriteConcern::Base) # # Cache a instância para que não a reconstruímos desnecessariamente. # @write_concern = @options[:write_concern] # @options[:write_concern] = @write_concern.options # end @opções.congelar @filename = @opções[:filename] @open = true @timeout_holder = CsotTimeoutHolder.Novo( operation_timeouts: { operation_timeout_ms: [: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.
33 34 35 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 33 def file_id @file_id end |
#filename ➤ string (somente leitura)
Retorna o nome do arquivo O nome do arquivo que está sendo carregado.
38 39 40 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 38 def Nome do Arquivo @filename end |
#fs ➤ FSBucket (somente leitura)
Retorna fs O bucket fs no qual esse stream é gravado.
28 29 30 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 28 def fs @fs end |
#opções ➤ Hash (somente leitura)
Retorna opções As opções de fluxo de gravação.
43 44 45 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 43 def @opções end |
Detalhes do método de instância
#abort ➤ true
Aborte o upload excluindo todos os chunks já inseridos.
178 179 180 181 182 183 184 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 178 def abortar fs.chunks_collection.find( { arquivos_id: file_id }, @opções.mesclar(timeout_ms: @timeout_holder.remaining_timeout_ms!) ).delete_many (@open = false) || true end |
#close ➤ BSON::ObjectId, Object
Feche o fluxo de gravação.
131 132 133 134 135 136 137 138 139 140 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 131 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.
166 167 168 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 166 def fechado? !@open end |
#write(io) ➤ Stream::Write
Grave no bucket GridFS a partir do fluxo de origem ou de uma string.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 100 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.
150 151 152 153 154 155 156 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 150 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 |