Classe: Mongo::URI
- Herda:
-
Objeto
- Objeto
- Mongo::URI
- Inclui:
- Endereço::Validator, Loggable
- Definido em:
- lib/mongo/uri.rb,
lib/mongo/uri/srv_protocol.rb,
lib/mongo/uri/options_mapper.rb
Visão geral
A classe URI fornece uma maneira de os usuários analisarem o uri do MongoDB conforme definido na especificação do formato da connection string.
https://www.mongodb.com/pt-br/docs/manual/reference/connection-string/
Definido sob namespace
Classes: OptionsMapper, SRVProtocol
Colapsode resumo constante
- ESQUEMA =
Obsoleto.
Será removido em 3.0.
O MongoDB string esquema de connection do .
'mongodb://'- MONGODB_SCHEME =
A MongoDB raiz do esquema string de connection do .
'mongodb'- MONGODB_SRV_SCHEME =
A MongoDB string raiz do esquema de connection do protocolo srv.
'MongoDB+srv'- INVALID_SCHEME =
Obsoleto.
Detalhes de erro para um esquema inválido.
"Esquema inválido. O esquema deve ser '#{MONGODB_SCHEME}' ou '#{MONGODB_SRV_SCHEME}'"- FORMATO =
Especificação de formato URI MongoDB.
'MongoDB://[username:password@]host1[:port1][,host2[:port2]' + ',...[,hostN[:portN]]][/[banco de dados][?options]]'
- AJUDA =
URL de documentação do MongoDB URI (connection string)
'https://www.mongodb.com/pt-br/docs/manual/reference/connection-string/'- NÃO SEGURO =
Caracteres não seguros que devem ser codificados em URL.
%r{[:/@]}- PERCENT_CHAR =
Sinal de porcentagem que deve ser codificado nas credenciais do usuário.
/%/- UNIX_SOCKET =
Sufixo de soquete Unix.
/.sock/- HOST_DELIM =
Os hosts delimitadores de caracteres.
','- HOST_PORT_DELIM =
O caractere que separa um host e uma porta.
':'- DATABASE_DELIM =
O caractere delimitando um banco de dados.
'/'- URI_OPTS_DELIM =
As opções de delimitação de caracteres.
'?'- INDIV_URI_OPTS_DELIM =
Obsoleto.
O caractere delimitando várias opções.
'&'- URI_OPTS_VALUE_DELIM =
O caractere delimitando uma opção e seu valor.
'='- AUTH_USER_PWS_DELIM =
O caractere que separa um nome de usuário da senha.
':'- AUTH_DELIM =
Os caracteres que delimitam as credenciais de autenticação.
'@'- SCHEME_DELIM =
Delimitador de esquema.
'://'- CREDENTIALS_PLACEHOLDER =
Espaço reservado usado no lugar de credenciais de texto simples quando um URI é renderizado para exibição, registro ou relatório de erros.
'<credentials>'- USERINFO_REDACTION_REGEX =
Correspondência de padrões na parte userinfo de uma string de conexão do MongoDB. Ancora no início e é delimitado ao componente de autoridade (para no primeiro '/', '?' ou '#'), mas corresponde gananciosamente até o último '@' nesse componente para que as senhas que contêm um '@' não escapado ainda sejam totalmente redigidas. Não diferencia maiúsculas de minúsculas, portanto, um esquema incomum como 'MongoDB://' também é redigido — o analisador o rejeitará e o redator não deve ser o que vaza as credenciais no erro resultante.
%r{\A(mongodb(?:\+srv)?://)[^/?#]*@}i.congelar
- INVALID_OPTS_VALUE_DELIM =
Detalhes de erro para um formato de opções inválido.
'As opções e seus valores devem ser delimitados ' + " por '#{URI_OPTS_VALUE_DELIM}'"
- UNESCAPED_USER_PWD =
Detalhes de erro para um nome de usuário ou senha sem código URL.
'O nome de usuário e a senha devem ser codificados em URL.'- UNESCAPED_UNIX_SOCKET =
Detalhes de erro para um caminho de soquete unix sem código URL.
'Os soquetes de domínio UNIX devem ser codificados com URL.'- UNESCAPED_DATABASE =
Detalhes de erro para um nome de banco de dados de autenticação não codificado por URL.
'O banco de dados de autenticação deve ser codificado como URL.'- INVALID_OPTS_DELIM =
Detalhes de erro por fornecer opções sem um delimitador de banco de dados.
"O delimitador de banco de dados '#{DATABASE_DELIM}' deve estar presente se as opções forem especificadas."- INVALID_HOST =
Detalhes de erro para um host ausente.
'host ausente; pelo menos um deve ser fornecido.'- INVALID_PORT =
Detalhes de erro para uma porta inválida.
'Porta inválida. A porta deve ser um número inteiro maior que 0 e menor que 65536'- READ_MODE_MAP =
Mapa de modos de leitura de URI para modos de leitura de driver Ruby
{ 'primary' => :primary, 'primarypreferred' => :primary_preferred, 'secundário' => :secondary, 'secondarypreferred' => :secondary_preferred, 'mais próximo' => :mais próximo }.congelar
- AUTH_MECH_MAP =
Mapa de mecanismos de autenticação URI para mecanismos de driver Ruby
{ 'GSSAPI' => :gssapi, 'MONGODB-AWS' => :aws, # O MONGODB-CR está obsoleto e será removido na versão do driver 3.0 'MONGODB-CR' => :mongodb_cr, 'MONGODB-X509' => :mongodb_x509, 'PLAIN' => :plain, 'SCRAM-SHA-1' => :scram, 'SCRAM-SHA-256' => :scram256, }.congelar
- SERVER_MONITORING_MODES =
Valores válidos para a opção de URI serverMonitoringMode.
%w[fluxo enquete auto].congelar
- REPEATABLE_OPTIONS =
Opções que podem aparecer mais de uma vez no uri.
Para seguir o requisito específico das opções de URI de que todas as instâncias de 'tls' e 'ssl' tenham o mesmo valor, precisamos acompanhar todos os valores passados para essas opções. Supondo que não entrem em conflito, serão condensadas em um único valor imediatamente após a análise do URI.
%i[tag_sets ssl]
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#opções ➤ Objeto
Somente leitura
As opções de objeto do analisador uri.
-
#servidores ➤ Objeto
Somente leitura
Os servidores especificados no uri.
-
#uri_options ➤ Objeto
Somente leitura
Mongo::Options::editado das opções especificadas no uri.
Recolhimento do Resumo do método de classe
-
.get(string, opts = {}) ➤ URI, URI::SRVProtocol
Obtenha um objeto URI ou um objeto SRVProtocol URI .
-
.redact(string) ⇒ string
Substitua a parte userinfo de uma string de conexão do MongoDB por um espaço reservado para que o resultado possa ser registrado em log, exibido ou incorporado com segurança em uma mensagem de exceção.
Recolhimento do Resumo do método de instância
-
#client_options ➤ Mongo::Options::Redacted
Obtém o hash de opções que precisa ser passado para um Mongo::Client na instanciação, para que não precisemos mesclar as credenciais e o banco de dados nesse ponto - só temos um único ponto aqui.
-
#credenciais ➤ Hash
Obtenha as credenciais fornecidas no URI.
-
#banco de dados ➤ string
Obtenha o banco de dados fornecido no URI.
-
#inicializar(string, opções = {}) ➤ URI
construtor
Crie o novo uri a partir da string fornecida.
-
#inspecionar ➤ string
Retorna uma representação redigida e legível por humanos do URI.
- #srv_records ➤ Objeto
-
#to_s ➤ string
Obtenha o uri como uma string com todas as credenciais redigidas.
Métodos incluídos de Address::Validator
Métodos incluídos no Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger
Detalhes do construtor
#inicializar(string, opções = {}) ➤ URI
Crie o novo uri a partir da string fornecida.
313 314 315 316 317 318 319 320 321 322 323 324 325 326 |
# Arquivo 'lib/mongo/uri.rb', linha 313 def inicializar(string, = {}) aumentar Erro::URL inválida.Novo(string, ' OURI deve ser uma string, não nula.') a menos que string aumentar Erro::URL inválida.Novo(string, 'Não é possível analisar um URI vazio.') se string.vazio? @string = string @opções = parsed_scheme, _, restante = string.Partição(SCHEME_DELIM) a menos que parsed_scheme == Esquema create_invalid_error!("Esquema inválido '#{parsed_scheme}'. O esquema deve ser '#{MONGODB_SCHEME}'. Use URI#get para analisar URIs SRV.") end create_invalid_error!('Nenhum host no URI') se restante.vazio? análise!(restante) end |
Detalhes do atributo da instância
#opções Objeto (somente leitura)
As opções de objeto do analisador uri.
37 38 39 |
# Arquivo 'lib/mongo/uri.rb', linha 37 def @opções end |
#servidores ➤ Objeto (somente leitura)
Os servidores especificados no uri.
47 48 49 |
# Arquivo 'lib/mongo/uri.rb', linha 47 def Servidores @servidores end |
#uri_options ➤ Objeto (somente leitura)
Mongo::Options::editado das opções especificadas no uri.
42 43 44 |
# Arquivo 'lib/mongo/uri.rb', linha 42 def @uri_options end |
Detalhes do método de classe
.get(string, opts = {}) ➤ URI, URI::SRVProtocol
Obtenha um objeto URI ou um objeto SRVProtocol URI .
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 |
# Arquivo 'lib/mongo/uri.rb', linha 262 def auto.obter(string, opciona = {}) aumentar Erro::URL inválida.Novo(string, ' OURI deve ser uma string, não nula.') a menos que string aumentar Erro::URL inválida.Novo(string, 'Não é possível analisar um URI vazio.') se string.vazio? Esquema, = string.Partição(SCHEME_DELIM) caso Esquema quando MONGODB_SCHEME URI.Novo(string, opciona) quando MONGODB_SRV_SCHEME Protocolo SRV.Novo(string, opciona) mais aumentar Erro::URL inválida.Novo(string, "Esquema inválido '#{schema}'. O esquema deve ser '#{MONGODB_SCHEME}' ou '#{MONGODB_SRV_SCHEME}'") end end |
.redact(string) ⇒ String
Substitua a parte userinfo de uma string de conexão do MongoDB por um espaço reservado para que o resultado possa ser registrado em log, exibido ou incorporado com segurança em uma mensagem de exceção.
A entrada é correspondida como uma string, não analisada, portanto, é seguro chamar em URIs malformadas (que é exatamente quando InvalidURI é levantado).
243 244 245 246 247 |
# Arquivo 'lib/mongo/uri.rb', linha 243 def auto.redigir(string) Método string a menos que string.is_a?(String) string.sub(USERINFO_REDACTION_REGEX, "\\1#{CREDENTIALS_PLACEHOLDER}@") end |
Detalhes do método de instância
#client_options ➤ Mongo::Options::Redacted
Obtém o hash de opções que precisa ser passado para um Mongo::Client na instanciação, para que não precisemos mesclar as credenciais e o banco de dados nesse ponto - só temos um único ponto aqui.
288 289 290 291 292 293 294 |
# Arquivo 'lib/mongo/uri.rb', linha 288 def opciona = .toque fazer |opciona| opciona[:database] = @database se @database end @user ? opciona.mesclar(credenciais) : opciona end |
#credenciais ➤ Hash
Obtenha as credenciais fornecidas no URI.
338 339 340 |
# Arquivo 'lib/mongo/uri.rb', linha 338 def credenciais { utilizador: @user, Senha: @senha } end |
#banco de dados ➤ string
Obtenha o banco de dados fornecido no URI.
350 351 352 |
# Arquivo 'lib/mongo/uri.rb', linha 350 def database @database || Database::ADMIN end |
#inspecionar ➤ string
Retorne uma representação legível por humanos e editada do URI. O Object#inspect padrão faria dump de @string e @password como variáveis de instância, vazando credenciais.
373 374 375 |
# Arquivo 'lib/mongo/uri.rb', linha 373 def inspecionar "#<#{self.classe.name}: #{reconstruct_uri}>" end |
#srv_records ➤ Objeto
296 297 298 |
# Arquivo 'lib/mongo/uri.rb', linha 296 def srv_records nada end |
#to_s ➤ string
Obtenha o uri como uma string com todas as credenciais redigidas.
As credenciais são substituídas por CREDENTIALS_PLACEHOLDER para que o resultado seja seguro para log ou exibir. Use #credenciais para recuperar o usuário e a senha originais.
364 365 366 |
# Arquivo 'lib/mongo/uri.rb', linha 364 def to_s reconstruct_uri end |