Clase: Mongo::Grid::FSBucket::Stream::Write
- Hereda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Write
- Definido en:
- lib/mongo/grid/stream/write.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
Nombre del archivo El nombre del archivo que se va a cargar.
-
#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.
-
#cerrar ⇒ BSON::ObjectId, Objeto
Cierra el flujo de escritura.
-
#¿cerrado? ⇒ verdadero, falso
¿El arroyo está cerrado?
-
#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.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 70 def inicializar(fs, ) @fs = fs @length = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.Nuevo @options = .dup =begin Soporte de objetos WriteConcern si @options[:write_concern].is_a?(WriteConcern::Base) # Almacene la instancia en caché para que no tengamos que reconstruirla innecesariamente. @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =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 los atributos de instancia
#file_id ⇒ Objeto (solo lectura)
Devuelve file_id El id del archivo que se está subiendo.
36 37 38 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 36 def file_id @file_id end |
#nombre de archivo ⇒ Cadena (solo lectura)
Devuelve el nombre del archivo El nombre del archivo que se está cargando.
41 42 43 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 41 def nombre de archivo @filename end |
#fs ⇒ FSBucket (solo lectura)
Devuelve fs El depósito fs en el que escribe esta secuencia.
31 32 33 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 31 def fs @fs end |
#opciones ⇒ Hash (solo lectura)
Opciones de devoluciones Las opciones de flujo de guardar.
46 47 48 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 46 def @options end |
Detalles del método de instancia
#abort ⇒ true
Aborte la carga borrando todos los fragmentos ya insertados.
182 183 184 185 186 187 188 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 182 def abortar fs.chunks_collection.buscar( { ID_archivos => file_id }, @options.fusionar(tiempo_de_espera_ms: @timeout_holder.¡tiempo de espera restante_ms!) ).borrar_varios (@open = false) || true end |
#cerrar ⇒ BSON::ObjectId, objeto
Cierra el flujo de escritura.
135 136 137 138 139 140 141 142 143 144 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 135 def Cerrar asegura_abierto! update_length colección_archivos.insert_one( file_info, @options.fusionar(tiempo_de_espera_ms: @timeout_holder.¡tiempo de espera restante_ms!) ) @open = false file_id end |
#cerrado? ⇒ verdadero, falso
¿El arroyo está cerrado?
170 171 172 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 170 def ¿Cerrado? !@open end |
#escribir(io) ⇒ Stream::Write
Escribe en el bucket de GridFS desde el flujo fuente o una string.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 104 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.¡tiempo de espera restante_ms! ) end sí mismo end |
#write_concern ⇒ Mongo::WriteConcern
Obtenga el nivel de confirmación de escritura (write concern) utilizado al cargar.
154 155 156 157 158 159 160 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 154 def escribir_preocupación @write_concern ||= si wco = @options[:escribir_preocupación] || @options[guardar] Nivel de confirmación de escritura (write concern).Obtener(wco) else fs.escribir_preocupación end end |