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.
Resumen de atributos de la instancia colapsar
-
#file_id ⇒ BSON::ObjectId, Object
Solo lectura
File_id El id del archivo que se está leyendo.
-
#fs ⇒ FSBucket
Solo lectura
Fs El bucket fs desde el cual este stream lee.
-
#options ⇒ Hash
Solo lectura
Opciones Las opciones de transmisión.
Resumen del método de instancia colapsar
-
#cerrar ⇒ BSON::ObjectId, Objeto
Cierra el flujo de lectura.
-
#¿cerrado? ⇒ verdadero, falso
¿El arroyo está cerrado?
-
#each {|Each| ... } ⇒ Enumerator
Itérate a través de datos de fragmentos transmitidos desde el FSBucket.
-
#file_info ⇒ File::Info
Obtenga el documento de información del archivo de la colección de archivos del archivo que se está leyendo.
-
#initialize(fs, opciones) ⇒ Read
constructor
Crea un flujo para leer archivos desde el FSBucket.
-
#read ⇒ String
Leer todos los datos del archivo.
-
#read_preference ⇒ BSON::Document
Obtén la preferencia de lectura.
Detalles del constructor
#initialize(fs, options) ⇒ Leer
Crea un flujo para leer archivos desde el 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 @options = .dup @file_id = @options.borrar(:file_id) @options.freeze @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 ⇒ 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 bucket de fs del que lee este flujo.
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 @options end |
Detalles del método de instancia
#cerrar ⇒ BSON::ObjectId, objeto
Cierra el flujo de lectura.
Si el flujo ya está cerrado, 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.close_query @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 |
#each {|Each| ... } ⇒ Enumerator
Itérate a través de datos de fragmentos transmitidos desde el 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 asegurar_legibilidad! información = file_info num_chunks = (información.longitud + información.chunk_size - 1) / información.chunk_size num_read = 0 si ¿block_given? vista.cada_con_índice.disminuir(0) hacer |longitud_lectura, (doc, index)| fragmento = Cuadrícula::Archivo::fragmento.Nuevo(doc) validate!(index, num_chunks, fragmento, longitud_lectura) Datos = fragmento.Datos.Datos rendimiento Datos num_read += 1 longitud_lectura += Datos.tamaño end.tocar hacer si num_read < num_chunks propagar Error::Fragmento de archivo faltante.Nuevo(num_chunks, num_read) end end else vista.to_enum end end |
#file_info ⇒ File::Info
La información del archivo se almacena en caché en el flujo. Las llamadas posteriores a file_info devolverán la misma información que devolvió la primera llamada, y no consultarán de nuevo la base de datos.
Obtenga el documento de información del archivo de la colección de archivos del 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 @file_info ||= begin doc = [Información del archivo] || fs.colección_archivos.buscar( { _id: file_id }, { tiempo_de_espera_ms: @timeout_holder.¡tiempo de espera restante_ms! } ).primero si doc Archivo::información.Nuevo(opciones::Mapeador.transformar(doc, Archivo::información::Mapeos.invert)) else nulo end end end |
#read ⇒ String
Leer todos los datos del archivo.
117 118 119 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 117 def Lea to_a.unirse 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.
Obtén 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 |