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

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

Overview

Una secuencia que escribe archivos en el FSBucket.

Desde:

  • 2.1.0

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(fs, opciones) ⇒ Escribir

Crea una secuencia para escribir archivos en FSBucket.

Ejemplos:

Crea el flujo.

Stream::Write.new(fs, options)

Parámetros:

  • fs (FSBucket)

    El objeto bucket GridFS.

  • opciones (Hash)

    Las opciones del flujo de escritura.

  • opta (Hash)

    un conjunto personalizable de opciones

Opciones Hash(opciones):

  • :file_id (Objeto)

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

  • :escribir (Hash)

    Obsoleto. Equivalente a la opción :write_concern.

  • :escribir_preocupación (Hash)

    Las opciones de escritura pueden ser: :w => Entero|Cadena, :fsync => Booleano, :j => Booleano.

Desde:

  • 2.1.0



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, opciones)
  @fs = fs
  @longitud = 0
  @n = 0
  @file_id = opciones[:file_id] || BSON::ObjectId.Nuevo
  @opciones = 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: opciones[:tiempo de espera_ms],
      tiempo de espera heredado_ms: fs.database.tiempo de espera_ms
    }
  )
end

Detalles de los atributos de instancia

#file_idObjeto (solo lectura)

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

Devuelve:

  • (Objeto) -

    file_id El id del archivo que se está cargando.

Desde:

  • 2.1.0



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

def file_id
  @file_id
end

#nombre de archivoCadena (solo lectura)

Devuelve el nombre del archivo El nombre del archivo que se está cargando.

Devuelve:

  • (Cadena) -

    nombre_de_archivo El nombre del archivo que se va a cargar.

Desde:

  • 2.1.0



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

def nombre de archivo
  @filename
end

#fsFSBucket (solo lectura)

Devuelve fs El depósito fs en el que escribe esta secuencia.

Devuelve:

  • (FSBucket)

    fs El depósito fs en el que escribe esta secuencia.

Desde:

  • 2.1.0



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

def fs
  @fs
end

#opcionesHash (solo lectura)

Devuelve opciones Las opciones del flujo de escritura.

Devuelve:

  • (Hash)

    opciones Las opciones del flujo de escritura.

Desde:

  • 2.1.0



46
47
48
# Archivo 'lib/mongo/grid/stream/write.rb', línea 46

def opciones
  @opciones
end

Detalles del método de instancia

#aborttrue

Aborte la carga eliminando todos los fragmentos ya insertados.

Ejemplos:

Abortar la operación de escritura.

stream.abort

Devuelve:

  • (verdadero) -

    Verdadero si se canceló la operación y se cerró la transmisión.

Desde:

  • 2.1.0



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

#cerrarBSON::ObjectId, Objeto

Cierra el flujo de escritura.

Ejemplos:

Cierra la transmisión.

stream.close

Devuelve:

  • (BSON::ObjectId, Objeto)

    El id del archivo.

Aumentos:

  • (Error::Transmisióncerrada)

    Si el stream ya esta cerrado.

Desde:

  • 2.1.0



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?

Ejemplos:

¿El arroyo está cerrado?

stream.closed?

Devuelve:

  • (verdadero,falso)

    Si el flujo está cerrado.

Desde:

  • 2.1.0



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.

Ejemplos:

Guarda en GridFS.

stream.write(io)

Parámetros:

  • io (Cadena | IO)

    La cadena o el objeto IO desde el que se cargará.

Devuelve:

  • (Transmisión::Escritura)

    self El propio flujo de guardado.

Desde:

  • 2.1.0



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ónMongo::WriteConcern

Obtenga la información de escritura utilizada al cargar.

Ejemplos:

Obtenga la preocupación escrita.

stream.write_concern

Devuelve:

Desde:

  • 2.1.0



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