Clase: Mongo::Grid::FSBucket::Stream::Write

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/grid/stream/guardar.rb

Overview

Un flujo que escribe archivos en el FSBucket.

Desde:

  • 2.1.0

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#initialize(fs, opciones) ⇒ guardar

Crea un flujo para guardar archivos en el FSBucket.

Ejemplos:

Crea el flujo.

Stream::Write.new(fs, options)

Parámetros:

  • fs (FSBucket)

    El objeto bucket de GridFS.

  • opciones (encriptada)

    Las opciones de flujo de guardar.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (options):

  • :file_id (objeto)

    El id del archivo. Se genera un ObjectId si no se proporciona el id del archivo.

  • guardar (encriptada)

    Obsoleto. Equivalente a la opción :write_concern.

  • conformidad_de_lectura (encriptada)

    Las opciones de nivel de confirmación de escritura (write concern). Puede ser :w => Integer | String, :fsync => booleano, :j => booleano.

Desde:

  • 2.1.0



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Archivo 'lib/mongo/grid/stream/write.rb', línea 67

def inicializar(fs, opciones)
  @fs = fs
  @length = 0
  @n = 0
  @file_id = opciones[:file_id] || BSON::ObjectId.Nuevo
  @options = opciones.dup
  # Soporte de objetos WriteConcern
  #             si @options[:write_concern].is_a?(WriteConcern::Base)
  #               # Almacena en caché la instancia para que no sea necesario reconstruirla sin motivo.
  #               @write_concern = @options[:write_concern]
  #               @options[:write_concern] = @write_concern.options
  #             end
  @options.freeze
  @filename = @options[nombre de archivo]
  @open = true
  @timeout_holder = CsotTimeoutHolder.Nuevo(
    operation_timeouts: {
      operation_timeout_ms: opciones[:timeout_ms],
      timeout_ms_heredado: fs.database.timeout_ms
    }
  )
end

Detalles de atributo de instancias

#file_idObjeto (solo lectura)

Devuelve file_id El id del archivo que se está subiendo.

Devuelve:

  • (objeto)

    file_id El id del archivo que se está subiendo.

Desde:

  • 2.1.0



33
34
35
# Archivo 'lib/mongo/grid/stream/write.rb', línea 33

def file_id
  @file_id
end

#nombre de archivostring (solo lectura)

Devuelve filename El nombre del archivo que se está subiendo.

Devuelve:

  • (string)

    filename El nombre del archivo que se está subiendo.

Desde:

  • 2.1.0



38
39
40
# Archivo 'lib/mongo/grid/stream/write.rb', línea 38

def nombre de archivo
  @filename
end

#fsFSBucket (solo lectura)

Devuelve fs El fs bucket al que esta secuencia escribe.

Devuelve:

  • (FSBucket)

    fs El bucket fs al que este flujo escribe.

Desde:

  • 2.1.0



28
29
30
# Archivo 'lib/mongo/grid/stream/write.rb', línea 28

def fs
  @fs
end

#opcionesHash (solo lectura)

Opciones de devoluciones Las opciones de flujo de guardar.

Devuelve:

  • (encriptada)

    opciones Las opciones del flujo de escritura.

Desde:

  • 2.1.0



43
44
45
# Archivo 'lib/mongo/grid/stream/write.rb', línea 43

def opciones
  @options
end

Detalles del método de instancia

#aborttrue

Aborte la carga borrando todos los fragmentos ya insertados.

Ejemplos:

Aborte la operación de guardar.

stream.abort

Devuelve:

  • (cierto)

    Verdadero si la operación se detuvo y el flujo está cerrado.

Desde:

  • 2.1.0



178
179
180
181
182
183
184
# Archivo 'lib/mongo/grid/stream/write.rb', línea 178

def abortar
  fs.chunks_collection.buscar(
    { files_id: file_id },
    @options.fusionar(tiempo_de_espera_ms: @timeout_holder.remaining_timeout_ms!)
  ).borrar_varios
  (@open = false) || true
end

#cerrarBSON::ObjectId, objeto

Cierra el flujo de guardar.

Ejemplos:

Cierra la transmisión.

stream.close

Devuelve:

  • (BSON::ObjectId, objeto)

    El ID del archivo.

Aumenta:

Desde:

  • 2.1.0



131
132
133
134
135
136
137
138
139
140
# Archivo 'lib/mongo/grid/stream/write.rb', línea 131

def Cerrar
  asegura_abierto!
  update_length
  colección_archivos.insert_one(
    file_info,
    @options.fusionar(tiempo_de_espera_ms: @timeout_holder.remaining_timeout_ms!)
  )
  @open = false
  file_id
end

#cerrado?verdadero, falso

¿Está cerrado el flujo?

Ejemplos:

¿Está cerrado el flujo?

stream.closed?

Devuelve:

  • (true, false)

    Si la secuencia está cerrada.

Desde:

  • 2.1.0



166
167
168
# Archivo 'lib/mongo/grid/stream/write.rb', línea 166

def ¿Cerrado?
  !@open
end

#guardar(io) ⇒ Transmitir::guardar

Escribe en el bucket de GridFS desde el flujo fuente o una string.

Ejemplos:

Guarda en GridFS.

stream.write(io)

Parámetros:

  • io (String | IO)

    La string u objeto IO desde el cual cargar.

Devuelve:

Desde:

  • 2.1.0



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Archivo 'lib/mongo/grid/stream/write.rb', línea 100

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.remaining_timeout_ms!
    )
  end
  sí mismo
end

#write_concernMongo::WriteConcern

Obtenga el nivel de confirmación de escritura (write concern) utilizado al cargar.

Ejemplos:

Obtenga el nivel de confirmación de escritura (write concern).

stream.write_concern

Devuelve:

Desde:

  • 2.1.0



150
151
152
153
154
155
156
# Archivo 'lib/mongo/grid/stream/write.rb', línea 150

def write_concern
  @write_concern ||= si wco = @options[conformidad_de_lectura] || @options[guardar]
                       Nivel de confirmación de escritura (write concern).Obtener(wco)
                     else
                       fs.write_concern
                     end
end