Clase: Mongo::Grid::FSBucket::Stream::Write
- Hereda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Write
- Definido en:
- lib/mongo/grid/stream/write.rb
Overview
Una secuencia que escribe archivos en el FSBucket.
Colapso delresumen de atributos de instancia
-
#file_id ⇒ Object
solo lectura
File_id El id del archivo que se va a cargar.
-
#nombre de archivo ⇒ Cadena
solo lectura
Nombre del archivo El nombre del archivo que se va a cargar.
-
#fs ⇒ FSBucket
solo lectura
Fs El depósito fs en el que escribe esta secuencia.
-
#options ⇒ Hash
solo lectura
Opciones Las opciones del flujo de escritura.
Colapso del resumen del método de instancia
-
#abort ⇒ true
Aborte la carga eliminando todos los fragmentos ya insertados.
-
#cerrar ⇒ BSON::ObjectId, Objeto
Cierra el flujo de escritura.
-
#cerrado? ⇒ verdadero, falso
¿El arroyo está cerrado?
-
#inicializar(fs, opciones) ⇒ Escribir
constructor
Crea una secuencia para escribir archivos en FSBucket.
-
#escribir(io) ⇒ Stream::Write
Escriba en el depósito GridFS desde la secuencia de origen o una cadena.
-
#escribir_preocupación ⇒ Mongo::WriteConcern
Obtenga la información de escritura utilizada al cargar.
Detalles del constructor
#inicializar(fs, opciones) ⇒ Escribir
Crea una secuencia para escribir archivos en 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 @longitud = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.Nuevo @opciones = .dup =begin Soporte de objetos WriteConcern si @options[:write_concern].is_a?(WriteConcern::Base) # Almacene en caché la instancia para no reconstruirla innecesariamente. @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =end @opciones.freeze @filename = @opciones[:Nombre del archivo] @open = true @timeout_holder = Titular del tiempo de espera de Csot.Nuevo( tiempos de espera de operación: { tiempo de espera de operación_ms: [:tiempo de espera_ms], tiempo de espera heredado_ms: fs.database.tiempo de espera_ms } ) end |
Detalles de los atributos de instancia
#file_id ⇒ Objeto (solo lectura)
Devuelve file_id El id del archivo que se está cargando.
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)
Devuelve opciones Las opciones del flujo de escritura.
46 47 48 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 46 def @opciones end |
Detalles del método de instancia
#abort ⇒ true
Aborte la carga eliminando todos los fragmentos ya insertados.
182 183 184 185 186 187 188 |
# Archivo 'lib/mongo/grid/stream/write.rb', línea 182 def anular fs.colección de trozos.buscar( { :id_de_archivos => file_id }, @opciones.unir(tiempo de espera_ms: @timeout_holder.¡tiempo de espera restante_ms!) ).eliminar_muchos (@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 ¡Asegúrese de abrir! longitud de actualización colección de archivos.insert_one( file_info, @opciones.unir(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
Escriba en el depósito GridFS desde la secuencia de origen o una cadena.
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) ¡Asegúrese de abrir! @indexes ||= ensure_indexes! @longitud += Si io.respond_to?(:bytesize) # Objetos de cadena io.bytesize else # Objetos IO io.tamaño end trozos = Archivo::Fragmento.división(io, file_info, @n) @n += trozos.tamaño a no ser que trozos.¿vacío? colección de trozos.insert_many( trozos, tiempo de espera_ms: @timeout_holder.¡tiempo de espera restante_ms! ) end yo end |
#escribir_preocupación ⇒ Mongo::WriteConcern
Obtenga la información de escritura utilizada 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 oma = @opciones[:escribir_preocupación] || @opciones[:escribir] Escribir preocupación.Obtener(oma) else fs.escribir_preocupación end end |