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

SRVProtocol

Definido bajo Namespace

Clases: OptionsMapper, SRVProtocol

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 =

El esquema raíz de la 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
INVALID_SCHEME =
Obsoleto.

Detalles de error para un esquema inválido.

Desde:

  • 2.1.0

"Esquema no 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@]host1[:puerto1][,host2[:puerto2]' +
',...[,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 no seguros que deben estar codificados en URL.

Desde:

  • 2.1.0

/[\:\/\@]/
PERCENT_CHAR =

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

Desde:

  • 2.5.1

/\%/
UNIX_SOCKET =

Sufijo de socket Unix.

Desde:

  • 2.1.0

/.sock/
HOST_DELIM =

El carácter que delimita los hosts.

Desde:

  • 2.1.0

','.freeze
HOST_PORT_DELIM =

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

Desde:

  • 2.1.0

':'.freeze
DATABASE_DELIM =

El carácter que delimita una base de datos.

Desde:

  • 2.1.0

'/'.freeze
URI_OPTS_DELIM =

Las opciones de delimitación de caracteres.

Desde:

  • 2.1.0

'?'.freeze
INDIV_URI_OPTS_DELIM =
Obsoleto.

El carácter que delimita varias 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
AUTH_USER_PWD_DELIM =

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

Desde:

  • 2.1.0

':'.freeze
AUTH_DELIM =

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
INVALID_OPTS_VALUE_DELIM =

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

Desde:

  • 2.1.0

"Las opciones y sus valores deben estar delimitados" +
" por '#{URI_OPTS_VALUE_DELIM} ' ".freeze
CONTRASEÑA DE USUARIO SIN ESCAPAR =

Detalles del error para un nombre de usuario o contraseña sin URLEncoding.

Desde:

  • 2.1.0

"El nombre de usuario y la contraseña deben estar codificados en URL.".freeze
UNESCAPED_UNIX_SOCKET =

Detalles del error para una ruta de socket Unix no codificada.

Desde:

  • 2.1.0

"Los sockets del dominio UNIX deben estar codificados como URL.".freeze
UNESCAPED_DATABASE =

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
INVALID_OPTS_DELIM =

Detalles del error para 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
INVALID_HOST =

Detalles del error de un host faltante.

Desde:

  • 2.1.0

"Host faltante; se debe proporcionar al menos uno.".freeze
PUERTO_INVÁLIDO =

Detalles del error para un puerto no válido.

Desde:

  • 2.1.0

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

Mapa de modos de preferencia de lectura URI a modos de preferencia de lectura del driver Ruby

Desde:

  • 2.0.0

{
  'primario '            => :primario,
  'primarypreferred'   => :primary_preferred,
  'secundario'          => secundario,
  'secundariopreferido' => :secundario_preferido,
  'más cercano'            => :más cercano
}.freeze
AUTH_MECH_MAP =

Mapa de mecanismos de autenticación URI a mecanismos del driver de 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'        => :plain,
  'SCRAM-SHA-1'  => :largarse,
  'SCRAM-SHA-256' => :scram256,
}.freeze
REPEATABLE_OPTIONS =

Opciones que se permiten que aparezcan más de una vez en el URI.

Para cumplir con el requisito de la especificación de opciones URI de que todas las instancias de 'tls' y 'ssl' tengan el mismo valor, necesitamos rastrear todos los valores pasados para esas opciones. Asumiendo que no haya conflictos, se condensarán a un solo valor inmediatamente después de analizar el URI.

Desde:

  • 2.1.0

[ :conjuntos de etiquetas, :ssl ]

Constantes incluidas desde Loggable

Registrable::PREFIX

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos incluidos en Address::Validator

#validate_address_str!

Métodos incluidos desde Registrable

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

Detalles del constructor

#initialize(string, opciones = {}) ⇒ URI

Crear el nuevo uri a partir de la string proporcionada.

Ejemplos:

Cree el nuevo URI.

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

Parámetros:

  • string (string)

    El URI para analizar.

  • opciones (Hash) (por defecto: {})

    Las opciones.

Opciones Hash (options):

  • :logger (Logger)

    Un registrador personalizado para usar.

Aumenta:

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 menos que string
    propagar Error::InvalidURI.Nuevo(string, 'La URI debe ser una string, no nula.')
  end
  si string.¿vacío?
    propagar Error::InvalidURI.Nuevo(string, 'No se puede analizar una URI vacía.')
  end

  @string = string
  @options = opciones
  parsed_scheme, _, restante = string.partición(SCHEME_DELIM)
  a menos que parsed_scheme == 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 restante.¿vacío?
    raise_invalid_error!('No hay hosts en la URI')
  end
  parse!(restante)
  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
  @options
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
  @servers
end

#uri_optionsObject (solo lectura)

Mongo::Options::Redacted de las opciones especificadas en el uri.

Desde:

  • 2.1.0



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

def uri_options
  @uri_options
end

Detalles del método de clase

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

Obtiene un objeto URI o un objeto SRVProtocol URI.

Ejemplos:

Obtén el objeto uri.

URI.get(string)

Parámetros:

  • string (string)

    El URI para analizar.

  • opta (Hash) (por defecto: {})

    Las opciones.

  • opciones (encriptada)

    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 sí mismo.Obtener(string, opta = {})
  a menos que string
    propagar Error::InvalidURI.Nuevo(string, 'La URI debe ser una string, no nula.')
  end
  si string.¿vacío?
    propagar Error::InvalidURI.Nuevo(string, 'No se puede analizar una URI vacía.')
  end

  esquema, _, _ = string.partición(SCHEME_DELIM)
  caso esquema
    Cuando MONGODB_SCHEME
      URI.Nuevo(string, opta)
    Cuando MONGODB_SRV_SCHEME
      SRVProtocol.Nuevo(string, opta)
    else
      propagar Error::InvalidURI.Nuevo(string, "Esquema no 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:

Obtener 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 = uri_options.tocar hacer |opta|
    opta[:database] = @database si @database
  end

  @user ? opta.fusionar(cartas credenciales) : opta
end

#credencialesHash

Obtén las credenciales proporcionadas en el URI.

Ejemplos:

Obtener las credenciales.

uri.credentials

Devuelve:

  • (encriptada)

    Las credenciales.

    • :usuario [ String ] El usuario.

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

Desde:

  • 2.0.0



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

def cartas credenciales
  { Usuario/a => @user, :contraseña => @password }
end

#databaseString

Obtenga la base de datos proporcionada en el URI.

Ejemplos:

Obtener la base de datos.

uri.database

Devuelve:

  • (string)

    La base de datos.

Desde:

  • 2.0.0



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

def database
  @database ? @database : Database::ADMIN
end

#srv_recordsObjeto

Desde:

  • 2.0.0



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

def registros_srv
  nulo
end

#to_sString

Obtén el uri como una string.

Ejemplos:

Obtén el uri como una string.

uri.to_s

Devuelve:

  • (string)

    El string de la URI.

Desde:

  • 2.0.0



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

def to_s
  reconstruct_uri
end