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.
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, ) @fs = fs @ comprimento = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.Novo @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: [: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.
36 37 38 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 36 def file_id @file_id end |
#filename ➤ string (somente leitura)
Retorna o nome do arquivo O nome do arquivo que está sendo carregado.
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.
31 32 33 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 31 def fs @fs end |
#opções ➤ Hash (somente leitura)
Retorna opções As opções de fluxo de gravação.
46 47 48 |
# Arquivo 'lib/mongo/grid/stream/write.rb', linha 46 def @opções end |
Detalhes do método de instância
#abort ➤ true
Aborte o upload excluindo todos os chunks já inseridos.
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 |
#close ➤ BSON::ObjectId, Object
Feche o fluxo de gravação.
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.
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.
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.
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 |