Clase: Mongo::URI

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Address::Validator, Loggable
Definido en:
lib/mongo/uri.rb,
lib/mongo/uri/srv_protocol.rb,
lib/mongo/uri/options_mapper.rb

Overview

La clase URI proporciona una forma para que los usuarios analicen el uri de MongoDB tal como se define en la especificación del formato de la cadena de conexión.

www.mongodb.com/es/docs/manual/reference/connection-string/

Ejemplos:

Utilice la cadena uri para realizar una conexión de cliente.

uri = Mongo::URI.new('mongodb://localhost:27017')
client = Mongo::Client.new(uri.servers, uri.options)
client.(uri.credentials)
client[uri.database]

Desde:

  • 2.0.0

Subclases conocidas directas

Protocolo SRV

Definido en el espacio de nombres

Clases: Mapeador de opciones, Protocolo SRV

Colapso delresumen constante

ESQUEMA =
Obsoleto.

Se eliminará en 3.0.

El esquema de cadena de conexión de mongodb.

Desde:

  • 2.0.0

'mongodb://'.freeze
ESQUEMA MONGODB =

La raíz del esquema de cadena de conexión de mongodb.

Desde:

  • 2.5.0

'mongodb'.freeze
ESQUEMA_SRV_MONGODB =

El esquema de la cadena de conexión del protocolo srv de mongodb.

Desde:

  • 2.5.0

'mongodb+srv'.freeze
ESQUEMA INVÁLIDO =
Obsoleto.

Detalles del error para un esquema no válido.

Desde:

  • 2.1.0

"Esquemano válido. El esquema debe ser' #{MONGODB_SCHEME} ' o' #{MONGODB_SRV_SCHEME} ' ".freeze
FORMATO =

Especificación del formato URI de MongoDB.

Desde:

  • 2.0.0

'mongodb://[nombre de usuario:contraseña@]host[:puerto][,host[:puerto]11'22 +
',...[,hostN[:portN]]][/[database][?options]]'.freeze
AYUDA =

URL de la documentación de la URI (cadena de conexión) de MongoDB

Desde:

  • 2.0.0

'https://www.mongodb.com/es/docs/manual/reference/connection-string/ '.freeze
INSEGURO =

Caracteres inseguros que deben codificarse en URL.

Desde:

  • 2.1.0

/[\:\/\@]/
PORCENTAJE_CARACTER =

Signo de porcentaje que debe codificarse en las credenciales del usuario.

Desde:

  • 2.5.1

/\%/
SOCKET_UNIX =

Sufijo de socket Unix.

Desde:

  • 2.1.0

/.sock/
DELIM_HOST =

El carácter que delimita los anfitriones.

Desde:

  • 2.1.0

','.freeze
DELIM_PUERTO_HOST =

El carácter que separa un host y un puerto.

Desde:

  • 2.1.0

':'.freeze
DELIM_DE_BASE_DE_DATOS =

El carácter que delimita una base de datos.

Desde:

  • 2.1.0

'/'.freeze
URI_OPTS_DELIM =

Las opciones que delimitan caracteres.

Desde:

  • 2.1.0

'?'.freeze
INDIV_URI_OPTS_DELIM =
Obsoleto.

El carácter que delimita múltiples opciones.

Desde:

  • 2.1.0

'&'.freeze
URI_OPTS_VALUE_DELIM =

El carácter que delimita una opción y su valor.

Desde:

  • 2.1.0

'='.freeze
DELIM CONTRASEÑA DE USUARIO DE AUTORIZACIÓN =

El carácter que separa el nombre de usuario de la contraseña.

Desde:

  • 2.1.0

':'.freeze
DELIM_AUTORIZACIÓN =

El carácter que delimita las credenciales de autenticación.

Desde:

  • 2.1.0

'@'.freeze
SCHEME_DELIM =

Delimitador de esquema.

Desde:

  • 2.5.0

'://'.freeze
DELIM_VALOR_OPCIONES_INVÁLIDOS =

Detalles del error para un formato de opciones no válido.

Desde:

  • 2.1.0

"Lasopciones y sus valores deben estardelimitados" +
" por '#{URI_OPTS_VALUE_DELIM} ' ".freeze
CONTRASEÑA DE USUARIO SIN ESCAPAR =

Detalles del error para un nombre de usuario o contraseña no codificados en URL.

Desde:

  • 2.1.0

"Elnombre de usuario y la contraseña deben estar codificados enURL"..freeze
SOCKET UNIX SIN ESCAPAR =

Detalles del error para una ruta de socket Unix sin codificación URL.

Desde:

  • 2.1.0

"Lossockets de dominio UNIX deben estar codificados enURL"..freeze
BASE DE DATOS SIN ESCAPAR =

Detalles del error para un nombre de base de datos de autenticación sin codificación URL.

Desde:

  • 2.1.0

"Labase de datos de autenticación debe estar codificada enURL"..freeze
DELIM_OPCIONES_INVÁLIDAS =

Detalles del error al proporcionar opciones sin un delimitador de base de datos.

Desde:

  • 2.1.0

"El delimitador de base de datos '#{DATABASE_DELIM}' debe estar presente si se especifican opciones.".freeze
HOST INVÁLIDO =

Detalles del error de un host faltante.

Desde:

  • 2.1.0

"Faltaun host; se debe proporcionar al menosuno.".freeze
PUERTO INVÁLIDO =

Detalles del error para un puerto no válido.

Desde:

  • 2.1.0

"Puertono válido. El puerto debe ser un número entero mayor que 0 y menor que 65536".freeze
READ_MODE_MAP =

Mapa de los modos de preferencia de lectura de URI a los modos de preferencia de lectura del controlador Ruby

Desde:

  • 2.0.0

{
  'primario '            => :primario,
  'primario preferido'   => :primary_preferred,
  'secundario'          => :secundario,
  'secundariopreferido' => :secundario_preferido,
  'más cercano'            => :más cercano
}.freeze
MAPA_MECÁNICO_DE_AUTORIZACIÓN =

Mapa de mecanismos de autenticación de URI a mecanismos de controlador Ruby

Desde:

  • 2.0.0

{
  'GSSAPI'       => :gssapi,
  'MONGODB-AWS'  => :aws,
  # MONGODB-CR está obsoleto y se eliminará en la versión del controlador 3.0
  'MONGODB-CR'   => :mongodb_cr,
  'MONGODB-X509' => :mongodb_x509,
  'PLAIN'        => :plano,
  'LARGA-SHA-1 '  => :largarse,
  'LARGA-SHA-256 ' => :scram256,
}.freeze
OPCIONES REPETIBLES =

Opciones que pueden aparecer más de una vez en la URI.

Para cumplir con el requisito de la especificación de opciones de URI de que todas las instancias de "tls" y "ssl" tengan el mismo valor, debemos registrar todos los valores pasados ​​para dichas opciones. Si no entran en conflicto, se condensarán en un único valor inmediatamente después de analizar la URI.

Desde:

  • 2.1.0

[ :conjuntos de etiquetas, :ssl ]

Constantes incluidas desde Loggable

Registrable::PREFIX

Colapso delresumen de atributos de instancia

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

Métodos incluidos en Address::Validator

#validate_address_str!

Métodos incluidos en Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Detalles del constructor

#inicializar(cadena, opciones = {}) ⇒ URI

Crea la nueva URI a partir de la cadena proporcionada.

Ejemplos:

Crea la nueva URI.

URI.new('mongodb://localhost:27017')

Parámetros:

  • string (Cadena) -

    La URI a analizar.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :logger (Registrador)

    Un registrador personalizado para utilizar.

Aumentos:

Desde:

  • 2.0.0



284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
# Archivo 'lib/mongo/uri.rb', línea 284

def inicializar(string, opciones = {})
  a no ser que string
    propagar Error::InvalidURI.Nuevo(string, 'URI debe ser una cadena, no nula.')
  end
  Si string.¿vacío?
    propagar Error::InvalidURI.Nuevo(string, 'Nose puede analizar una URI vacía.')
  end

  @cadena = string
  @opciones = opciones
  esquema analizado, _, restantes = string.dividir(ESQUEMA_DELIM)
  a no ser que esquema analizado == esquema
    raise_invalid_error!("Esquema inválido '#{parsed_scheme}'. El esquema debe ser '#{MONGODB_SCHEME}'. Utilice URI#get para analizar los URI SRV.")
  end
  Si restantes.¿vacío?
    raise_invalid_error!('No hay hosts en la URI')
  end
  parse!(restantes)
  validate_uri_options!
end

Detalles de los atributos de instancia

#opcionesObjeto (solo lectura)

Las opciones del objeto analizador URI.

Desde:

  • 2.0.0



39
40
41
# Archivo 'lib/mongo/uri.rb', línea 39

def opciones
  @opciones
end

#servidoresObjeto (solo lectura)

Los servidores especificados en la URI.

Desde:

  • 2.0.0



49
50
51
# Archivo 'lib/mongo/uri.rb', línea 49

def servidores
  @servidores
end

#uri_optionsObjeto (solo lectura)

Mongo::Options::Redacted de las opciones especificadas en la URI.

Desde:

  • 2.1.0



44
45
46
# Archivo 'lib/mongo/uri.rb', línea 44

def opciones_uri
  @uri_options
end

Detalles del método de clase

.get(string, opts = {}) ⇒ URI, URI::SRVProtocol

Obtenga un objeto URI o un objeto URI SRVProtocol.

Ejemplos:

Obtener el objeto uri.

URI.get(string)

Parámetros:

  • string (Cadena) -

    La URI a analizar.

  • opta (Hash) (predeterminado: {})

    Las opciones.

  • opciones (Hash)

    un conjunto personalizable de opciones

Devuelve:

Desde:

  • 2.5.0



230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
# Archivo 'lib/mongo/uri.rb', línea 230

def yo.Obtener(string, opta = {})
  a no ser que string
    propagar Error::InvalidURI.Nuevo(string, 'URI debe ser una cadena, no nula.')
  end
  Si string.¿vacío?
    propagar Error::InvalidURI.Nuevo(string, 'Nose puede analizar una URI vacía.')
  end

  esquema, _, _ = string.dividir(ESQUEMA_DELIM)
  caso esquema
    Cuando ESQUEMA MONGODB
      URI.Nuevo(string, opta)
    Cuando ESQUEMA MONGODB_SRV
      Protocolo SRV.Nuevo(string, opta)
    else
      propagar Error::InvalidURI.Nuevo(string, "Esquemano válido '#{scheme} '. El esquema debe ser' #{MONGODB_SCHEME} ' o '#{MONGODB_SRV_SCHEME} ' ")
  end
end

Detalles del método de instancia

#client_optionsMongo::Options::Redacted

Obtiene el hash de opciones que se debe pasar a un Mongo::Client en la instanciación, por lo que no tenemos que fusionar las credenciales y la base de datos en ese punto: solo tenemos un único punto aquí.

Ejemplos:

Obtenga las opciones del cliente.

uri.client_options

Devuelve:

Desde:

  • 2.0.0



259
260
261
262
263
264
265
# Archivo 'lib/mongo/uri.rb', línea 259

def opciones_del_cliente
  opta = opciones_uri.grifo hacer |opta|
    opta[:database] = @database Si @database
  end

  @usuario ? opta.unir(cartas credenciales) : opta
end

#credencialesHash

Obtenga las credenciales proporcionadas en la URI.

Ejemplos:

Obtenga las credenciales.

uri.credentials

Devuelve:

  • (Hash)

    Las credenciales.

    • :usuario [ Cadena ] El usuario.

    • :password [ Cadena ] La contraseña proporcionada.

Desde:

  • 2.0.0



315
316
317
# Archivo 'lib/mongo/uri.rb', línea 315

def cartas credenciales
  { :usuario => @usuario, :contraseña => @password }
end

#databaseString

Obtenga la base de datos proporcionada en la URI.

Ejemplos:

Obtener la base de datos.

uri.database

Devuelve:

  • (Cadena) -

    La base de datos.

Desde:

  • 2.0.0



327
328
329
# Archivo 'lib/mongo/uri.rb', línea 327

def database
  @database ? @database : Database::ADMINISTRACIÓN
end

#srv_recordsObjeto

Desde:

  • 2.0.0



267
268
269
# Archivo 'lib/mongo/uri.rb', línea 267

def registros_srv
  nulo
end

#to_sCadena

Obtén el uri como una string.

Ejemplos:

Obtén el uri como una string.

uri.to_s

Devuelve:

  • (Cadena) -

    La cadena uri.

Desde:

  • 2.0.0



337
338
339
# Archivo 'lib/mongo/uri.rb', línea 337

def a_s
  reconstruir_uri
end