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
Un flujo 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
-
#close ⇒ BSON::ObjectId, Objeto
Cierra el flujo de lectura.
-
#¿cerrado? ⇒ verdadero, falso
¿Está cerrado el flujo?
-
#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.
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 54 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 atributo de instancias
#file_id ⇒ BSON::ObjectId, objeto (solo lectura)
Devuelve file_id El id del archivo que se está leyendo.
40 41 42 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 40 def file_id @file_id end |
#fs ⇒ FSBucket (solo lectura)
Devuelve fs el bucket de fs del que lee este flujo.
30 31 32 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 30 def fs @fs end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones del flujo.
35 36 37 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 35 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.
127 128 129 130 131 132 133 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 127 def Cerrar si @open vista.close_query @open = false end file_id end |
#cerrado? ⇒ verdadero, falso
¿Está cerrado el flujo?
143 144 145 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 143 def ¿Cerrado? !@open end |
#each {|Each| ... } ⇒ Enumerator
Itérate a través de datos de fragmentos transmitidos desde el FSBucket.
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 82 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.each_with_index.disminuir(0) hacer |length_read, (doc, index)| fragmento = Cuadrícula::Archivo::fragmento.Nuevo(doc) validate!(index, num_chunks, fragmento, length_read) Datos = fragmento.Datos.Datos rendimiento Datos num_read += 1 length_read + Datos.Tamaño end.tocar hacer propagar Error::FaltaFragmentoDeArchivo.Nuevo(num_chunks, num_read) si num_read < num_chunks 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.
181 182 183 184 185 186 187 188 189 190 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 181 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.remaining_timeout_ms! } ).primero Archivo::información.Nuevo(opciones::Mapeador.Transforma(doc, Archivo::información::Mapeos.invert)) si doc end end |
#read ⇒ String
Leer todos los datos del archivo.
113 114 115 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 113 def Lea to_a.unirse end |
#read_preference ⇒ BSON::Document
Este método siempre devuelve una instancia de BSON::Document, incluso cuando el constructor especifica que el tipo de :read es un Hash, no un BSON::Document.
Obtén la preferencia de lectura.
160 161 162 163 164 165 166 167 168 169 |
# Archivo 'lib/mongo/grid/stream/read.rb', línea 160 def read_preference @read_preference ||= begin pref = [:leer] || fs.read_preference si pref.is_a?(BSON::Documento) pref else BSON::Documento.Nuevo(pref) end end end |