Clase: Mongo::Grid::FSBucket::Stream::Write
- Hereda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Write
- Definido en:
- lib/mongo/grid/stream/guardar.rb
Overview
Un flujo que escribe archivos en el FSBucket.
Resumen de atributos de la instancia colapsar
-
#file_id ⇒ Object
Solo lectura
File_id El id del archivo que se está subiendo.
-
#filename ⇒ String
Solo lectura
Filename El nombre del archivo que se está subiendo.
-
#fs ⇒ FSBucket
Solo lectura
Fs El bucket fs en el que este flujo escribe.
-
#options ⇒ Hash
Solo lectura
Opciones Las opciones del flujo de escritura.
Resumen del método de instancia colapsar
-
#abort ⇒ true
Aborte la carga borrando todos los fragmentos ya insertados.
-
#close ⇒ BSON::ObjectId, Objeto
Cierra el flujo de guardar.
-
#¿cerrado? ⇒ verdadero, falso
¿Está cerrado el flujo?
-
#initialize(fs, opciones) ⇒ guardar
constructor
Crea un flujo para guardar archivos en el FSBucket.
-
#guardar(io) ⇒ Stream::Write
Escribe en el bucket de GridFS desde el flujo fuente o una string.
-
#write_concern ⇒ Mongo::WriteConcern
Obtenga el nivel de confirmación de escritura (write concern) utilizado al cargar.
Detalles del Constructor
#initialize(fs, opciones) ⇒ guardar
Crea un flujo para guardar archivos en el FSBucket.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 67 def inicializar(fs, ) @fs = fs @length = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.Nuevo @options = .dup # Soporte de objetos WriteConcern # si @options[:write_concern].is_a?(WriteConcern::Base) # # Almacena en caché la instancia para que no sea necesario reconstruirla sin motivo. # @write_concern = @options[:write_concern] # @options[:write_concern] = @write_concern.options # end @options.freeze @filename = @options[nombre de archivo] @open = true @timeout_holder = CsotTimeoutHolder.Nuevo( operation_timeouts: { operation_timeout_ms: [:timeout_ms], timeout_ms_heredado: fs.database.timeout_ms } ) end |
Detalles de atributo de instancias
#file_id ⇒ Objeto (solo lectura)
Devuelve file_id El id del archivo que se está subiendo.
33 34 35 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 33 def file_id @file_id end |
#nombre de archivo ⇒ string (solo lectura)
Devuelve filename El nombre del archivo que se está subiendo.
38 39 40 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 38 def nombre de archivo @filename end |
#fs ⇒ FSBucket (solo lectura)
Devuelve fs El fs bucket al que esta secuencia escribe.
28 29 30 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 28 def fs @fs end |
#opciones ⇒ Hash (solo lectura)
Opciones de devoluciones Las opciones de flujo de guardar.
43 44 45 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 43 def @options end |
Detalles del método de instancia
#abort ⇒ true
Aborte la carga borrando todos los fragmentos ya insertados.
178 179 180 181 182 183 184 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 178 def abortar fs.chunks_collection.buscar( { files_id: file_id }, @options.fusionar(tiempo_de_espera_ms: @timeout_holder.remaining_timeout_ms!) ).borrar_varios (@open = false) || true end |
#cerrar ⇒ BSON::ObjectId, objeto
Cierra el flujo de guardar.
131 132 133 134 135 136 137 138 139 140 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 131 def Cerrar asegura_abierto! update_length colección_archivos.insert_one( file_info, @options.fusionar(tiempo_de_espera_ms: @timeout_holder.remaining_timeout_ms!) ) @open = false file_id end |
#cerrado? ⇒ verdadero, falso
¿Está cerrado el flujo?
166 167 168 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 166 def ¿Cerrado? !@open end |
#guardar(io) ⇒ Transmitir::guardar
Escribe en el bucket de GridFS desde el flujo fuente o una string.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 100 def guardar(io) asegura_abierto! @indexes ||= ensure_indexes! @length += si io.respond_to?(:bytesize) # Objetos de string io.bytesize else # Objetos de E/S io.Tamaño end Fragmentos = Archivo::fragmento.división(io, file_info, @n) @n += Fragmentos.Tamaño a menos que Fragmentos.¿vacío? chunks_collection.insert_many( Fragmentos, tiempo_de_espera_ms: @timeout_holder.remaining_timeout_ms! ) end sí mismo end |
#write_concern ⇒ Mongo::WriteConcern
Obtenga el nivel de confirmación de escritura (write concern) utilizado al cargar.
150 151 152 153 154 155 156 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 150 def write_concern @write_concern ||= si wco = @options[conformidad_de_lectura] || @options[guardar] Nivel de confirmación de escritura (write concern).Obtener(wco) else fs.write_concern end end |