类:Mongo::URI
- 继承:
-
对象
- 对象
- Mongo::URI
- 包括:
- Address::Validator , Loggable
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/uri.rb ,
build/Ruby-driver-v 2.19 /lib/mongo/uri/srv_protocol.rb,
build/Ruby-driver-v 2.19 /lib/mongo/uri/options_mapper.rb
Overview
URI 类为用户提供了一种解析连接MongoDB string格式规范中定义的 uri 的方法。
www.mongodb.com/zh-cn/docs/manual/reference/connection-string/
直接已知子类
在命名空间下定义
类: OptionsMapper , SRVProtocol
常量摘要折叠
- SCHEME =
已弃用。
将在3.0中删除。
MongoDB连接string模式。
' MongoDB :// '.冻结
- MONGODB_SCHEME =
MongoDB连接string方案根。
'mongodb'.冻结
- MONGODB_SRV_SCHEME =
MongoDB srv 协议连接string方案根。
' mongodb+srv '.冻结
- INVALID_SCHEME =
已弃用。
无效方案的错误详细信息。
"无效的方案。方案必须是 ' #{ MONGODB_SCHEME } ' 或 ' #{ MONGODB_SRV_SCHEME } ' ".冻结
- FORMAT =
MongoDB URI 格式规范。
' MongoDB ://[username:password@]host1[:port1][,host2[:port2] ' + ' ,...[,hostN[:portN]]][/[database][?options]] '.冻结
- 帮助 =
MongoDB URI(连接string )文档URL
' https://www.mongodb.com/zh-cn/docs/manual/reference/connection-string/ '.冻结
- 不安全 =
必须进行 urlencoded 的不安全字符。
/[\:\/\@]/
- PERCENT_CHAR =
必须在用户信用中编码的百分号。
/\%/
- UNIX_SOCKET =
Unix 套接字后缀。
/.sock/
- HOST_DELIM =
分隔主机的字符。
' , '.冻结
- HOST_PORT_DELIM =
分隔主机和端口的字符。
' : '.冻结
- DATABASE_DELIM =
分隔数据库的字符。
' / '.冻结
- URI_OPTS_DELIM =
字符分隔选项。
' ? '.冻结
- INDIV_URI_OPTS_DELIM =
已弃用。
分隔多个选项的字符。
' & '.冻结
- URI_OPTS_VALUE_DELIM =
分隔选项及其值的字符。
' = '.冻结
- AUTH_USER_PWD_DELIM =
分隔用户名和密码的字符。
' : '.冻结
- AUTH_DELIM =
分隔身份验证档案的字符。
' @ '.冻结
- SCHEME_DELIM =
模式分隔符。
' :// '.冻结
- INVALID_OPTS_VALUE_DELIM =
无效选项格式的错误详细信息。
"选项及其值必须分隔" + " by ' #{ URI_OPTS_VALUE_DELIM } ' ".冻结
- UNESCAPED_USER_PWD =
非 urlencoded 用户名或密码的错误详细信息。
"用户名和密码必须进行 urlencoded。 ".冻结
- UNESCAPED_UNIX_SOCKET =
非 urlencoded unix 套接字路径的错误详细信息。
" UNIX 域套接字必须进行 urlencoded。 ".冻结
- UNESCAPED_DATABASE =
非 urlencoded 身份验证数据库名称的错误详细信息。
"身份验证数据库必须进行 urlencoded。 ".冻结
- INVALID_OPTS_DELIM =
提供不带数据库分隔符的选项的错误详细信息。
" 如果指定了选项,则必须存在 数据库分隔符 ' #{ DATABASE_DELIM } '。 ".冻结
- INVALID_HOST =
缺少主机的错误详细信息。
"缺少主机;必须提供至少一个主机。 ".冻结
- INVALID_PORT =
无效端口的错误详细信息。
“端口无效。端口必须是大于0且小于65536的整数”.冻结
- READ_MODE_MAP =
URI 读取偏好模式到 Ruby 驱动程序读取偏好模式的映射
{ ' primary ' => :primary, ' primarypreferred ' => :primary_preferred, ' secondary ' => :secondary, ' secondarypreferred ' => :secondary_preferred, ' nearest ' => :nearest }.冻结
- AUTH_MECH_MAP =
URI 身份验证机制到 Ruby 驱动程序机制的映射
{ ' GSSAPI ' => :gssapi, ' MONGODB-AWS ' => :aws, # MONGODB-CR 已弃用,并将在驱动程序版本3.0中删除 'MONGODB-CR' => :mongodb_cr, ' MONGODB-X 509 ' => :mongodb_x 509, ' PLAIN ' => :plain, ' SCRAM-SHA- 1 ' => :scram, ' SCRAM-SHA- 256 ' => :scram 256, }.冻结
- REPEATABLE_OPTIONS =
允许在 uri 中多次出现的选项。
为了遵循 URI 选项规范要求“tls”和“ssl”的所有实例都具有相同的值,我们需要跟踪为这些选项传入的所有值。 假设它们不冲突,它们将在解析 URI 后立即压缩为单个值。
[ :tag_sets, :ssl ]
Loggable中包含的常量
实例属性摘要折叠
-
# options ⇒ 对象
只读
uri 解析器对象选项。
-
#servers ⇒ 对象
只读
uri 中指定的服务器。
-
# uri_options ⇒ 对象
只读
Mongo::Options::Redacted 列出了 uri 中指定的选项。
类方法摘要折叠
-
。 get (string, opts = {}) ⇒ URI, URI::SRVProtocol
获取 URI 对象或 SRVProtocol URI 对象。
实例方法摘要折叠
-
# client_options ⇒ Mongo::Options::Redacted
获取在实例化时需要传递给 Mongo::Client 的选项哈希,因此我们不必在此时合并凭证和数据库 - 这里只有一个点。
-
#凭证⇒ 哈希
获取 URI 中提供的档案。
-
#数据库⇒ string
获取 URI 中提供的数据库。
-
#initialize (string, options = {}) ⇒ URI
构造函数
从提供的string创建新的 uri。
- # srv_records ⇒ 对象
-
# to_s ⇒ string
获取string形式的 uri。
Address::Validator中包含的方法
Loggable中包含的方法
#log_debug 、 #log_error 、 #log_ Fatal 、 #log_info 、 #log_warn 、 #logger
构造函数详情
#initialize (string, options = {}) ⇒ URI
从提供的string创建新的 uri。
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第284行 def 初始化(字符串, = {}) 除非 字符串 提高 错误::InvalidURI.new(字符串, ' URI 必须是string ,而不是 nil。 ') end if 字符串.空? 提高 错误::InvalidURI.new(字符串, '无法解析空 URI。 ') end @string = 字符串 @options = parsed_scheme, _, 剩余 = 字符串.分区(SCHEME_DELIM) 除非 parsed_scheme == 有关 Raise_invalid_error!("无效的模式 ' #{ parsed_scheme } '。模式必须是 ' #{ MONGODB_SCHEME } '。使用 URI#get 解析 SRV URI。 ") end if 剩余.空? Raise_invalid_error!(' URI 中没有主机') end parse!(剩余) end |
实例属性详细信息
# options ⇒对象(只读)
uri 解析器对象选项。
39 40 41 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第39行 def @options end |
#servers ⇒对象(只读)
uri 中指定的服务器。
49 50 51 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第49行 def 服务器 @servers end |
# uri_options ⇒对象(只读)
Mongo::Options::Redacted 列出了 uri 中指定的选项。
44 45 46 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第44行 def @uri_options end |
类方法详细信息
。 get (string, opts = {}) ⇒ URI , URI::SRVProtocol
获取 URI 对象或 SRVProtocol URI 对象。
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第230行 def self.获取(字符串, opts = {}) 除非 字符串 提高 错误::InvalidURI.new(字符串, ' URI 必须是string ,而不是 nil。 ') end if 字符串.空? 提高 错误::InvalidURI.new(字符串, '无法解析空 URI。 ') end 有关, _, _ = 字符串.分区(SCHEME_DELIM) 案例 有关 when MONGODB_SCHEME URI.new(字符串, opts) when MONGODB_SRV_SCHEME SRVProtocol.new(字符串, opts) else 提高 错误::InvalidURI.new(字符串, " 无效方案 ' # { { schema } } '。方案必须是 ' #{ MONGODB_SCHEME } ' 或 ' #{ MONGODB_SRV_SCHEME } ' ") end end |
实例方法详细信息
# client_options ⇒ Mongo::Options::Redacted
获取在实例化时需要传递给 Mongo::Client 的选项哈希,因此我们不必在此时合并凭证和数据库 - 这里只有一个点。
259 260 261 262 263 264 265 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第259行 def opts = .点击 do |opts| opts[:database] = @database if @database end @user ? opts.合并(merge)(凭证) : opts end |
#凭证⇒哈希
获取 URI 中提供的档案。
315 316 317 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第315行 def 凭证 { : user => @user, :password => @password } end |
#数据库⇒ string
获取 URI 中提供的数据库。
327 328 329 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第327行 def database @database ? @database : Database::ADMIN end |
# srv_records ⇒对象
267 268 269 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第267行 def srv_records nil end |
# to_s ⇒ string
获取string形式的 uri。
337 338 339 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/uri.rb', 第337行 def to_s reconstruct_uri end |