Clase: Mongo::Grid::FSBucket::Stream::Read
- Hereda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket::Stream::Read
- Incluye:
- Enumerable
- Definido en:
- lib/mongo/grid/stream/read.rb
Overview
Una secuencia que lee archivos del FSBucket.
Colapso delresumen de atributos de instancia
-
#file_id ⇒ BSON::ObjectId, Object
solo lectura
File_id El id del archivo que se está leyendo.
-
#fs ⇒ FSBucket
solo lectura
Fs El depósito fs desde el que se lee esta secuencia.
-
#options ⇒ Hash
solo lectura
Opciones Las opciones de transmisión.
Colapso del resumen del método de instancia
-
#cerrar ⇒ BSON::ObjectId, Objeto
Cerrar el flujo de lectura.
-
#cerrado? ⇒ verdadero, falso
¿El arroyo está cerrado?
-
#cada {|Cada|... } ⇒ Enumerador
Iterar a través de fragmentos de datos transmitidos desde FSBucket.
-
#file_info ⇒ File::Info
Obtenga el documento de información del archivo de colección de archivos para el archivo que se está leyendo.
-
#inicializar(fs, opciones) ⇒ Leer
constructor
Crea una secuencia para leer archivos desde FSBucket.
-
#leer ⇒ Cadena
Leer todos los datos del archivo.
-
#preferencia_de_lectura ⇒ BSON::Documento
Obtenga la preferencia de lectura.
Detalles del constructor
#inicializar(fs, opciones) ⇒ Leer
Crea una secuencia para leer archivos desde FSBucket.
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 56 def inicializar(fs, ) @fs = fs @opciones = .dup @file_id = @opciones.borrar(:file_id) @opciones.freeze @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 ⇒ BSON::ObjectId, Objeto (solo lectura)
Devuelve file_id El id del archivo que se está leyendo.
42 43 44 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 42 def file_id @file_id end |
#fs ⇒ FSBucket (solo lectura)
Devuelve fs El depósito fs desde el que lee esta secuencia.
32 33 34 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 32 def fs @fs end |
#opciones ⇒ Hash (solo lectura)
Opciones de retorno Las opciones de transmisión.
37 38 39 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 37 def @opciones end |
Detalles del método de instancia
#cerrar ⇒ BSON::ObjectId, Objeto
Cerrar el flujo de lectura.
Si la transmisión ya está cerrada, este método no hace nada.
131 132 133 134 135 136 137 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 131 def cerrar Si @open vista.cerrar_consulta @open = false end file_id end |
#cerrado? ⇒ verdadero, falso
¿El arroyo está cerrado?
147 148 149 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 147 def ¿cerrado? !@open end |
#cada {|Cada|... } ⇒ Enumerador
Iterar a través de fragmentos de datos transmitidos desde FSBucket.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 84 def cada ¡Asegúrese de que sea legible! información = file_info núm_fragmentos = (información.longitud + información.tamaño del fragmento - 1) / información.tamaño del fragmento num_read = 0 Si ¿bloque_dado? vista.cada_con_índice.reducir(0) hacer |longitud_lectura, (doc, index)| fragmento = Cuadrícula::Archivo::Fragmento.Nuevo(doc) validate!(index, núm_fragmentos, fragmento, longitud_lectura) datos = fragmento.datos.datos rendimiento datos num_read += 1 longitud_lectura += datos.tamaño end.grifo hacer Si num_read < núm_fragmentos propagar Error::Fragmento de archivo faltante.Nuevo(núm_fragmentos, num_read) end end else vista.to_enum end end |
#file_info ⇒ File::Info
La información del archivo se almacena en caché en la secuencia. Las llamadas posteriores a file_info devolverán la misma información que la primera y no volverán a consultar la base de datos.
Obtenga el documento de información del archivo de colección de archivos para el archivo que se está leyendo.
185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 185 def file_info @info_del_archivo ||= begin doc = [:archivo_info_doc] || fs.colección de archivos.buscar( { _id: file_id }, { tiempo de espera_ms: @timeout_holder.¡tiempo de espera restante_ms! } ).primera Si doc Archivo::Info.Nuevo(opciones::Mapeador.transformar(doc, Archivo::Info::MAPEO.invert)) else nulo end end end |
#leer ⇒ Cadena
Leer todos los datos del archivo.
117 118 119 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 117 def Lea to_a.Join end |
#read_preference ⇒ BSON::Document
Este método siempre devuelve una instancia BSON::Document, aunque el constructor especifique el tipo de :read como un Hash, no como un BSON::Document.
Obtenga la preferencia de lectura.
164 165 166 167 168 169 170 171 172 173 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 164 def read_preference @read_preference ||= begin pref = [:leer] || fs.read_preference Si BSON::Documento === pref pref else BSON::Documento.Nuevo(pref) end end end |