クラス: Mongo::URI

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
アドレス::Validatorログ可能
定義:
lib/mongo/uri.rb

、lib/mongo/uri/srv_protocol.rb、lib/mongo/uri/options_mapper.rb

Overview

URI クラスは、ユーザーがMongoDB 接続string 形式の仕様 で定義されている URI を解析する方法を提供します。

https://www.mongodb.com/ja-jp/docs/manual/ 参照/ connection-string/

例:

URI string を使用してクライアント接続を行います。

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

以来

  • 2.0.0

名前空間で定義済み

クラス: OptionsMapperSRVProtocol

定数の概要の削減

SCHEME =
非推奨。

3.0で削除されます。

MongoDB接続stringスキーム。

以来

  • 2.0.0

'mongodb://'
MONGODB_SCHEME =

MongoDB接続stringスキーム ルート。

以来

  • 2.5.0

'mongodb'
MONGODB_SRV_SCHEME =

MongoDB srv プロトコル接続stringスキーム ルート。

以来

  • 2.5.0

'mongodb+srv'
INVALID_SCHEME =
非推奨。

無効なスキームのエラーの詳細。

以来

  • 2.1.0

"無効なスキーム。スキームは " #{ MONGODB_SCHEME } " または " #{ MONGODB_SRV_SCHEME } ]である必要があります
FORMAT =

MongoDB URI 形式の仕様。

以来

  • 2.0.0

' MongoDB ://[username:password@]host1[:port1][,host2[:port2] ' +
',...[,hostN[:portN]]][/[データベース][?options]]'
ヘルプ =

MongoDB URI(接続string )ドキュメントURL

以来

  • 2.0.0

'https://www.mongodb.com/ja-jp/docs/manual/ 参照/ connection-string/'
安全ではない =

URL でエンコードする必要がある文字は安全ではありません。

以来

  • 2.1.0

%r{[:/@]}
PERCENT_CHAR =

ユーザー認証でエンコードする必要があるパーセント記号。

以来

  • 2.5.1

/%/
UNIX_SOCKET =

Unix ソケットのサフィックス。

以来

  • 2.1.0

/.sock/
HOST_DELim =

ホストを区切る文字。

以来

  • 2.1.0

','
HOST_PART_DELim =

ホストとポートを区切る文字。

以来

  • 2.1.0

':'
DATABASE_DELim =

データベースを区切る文字。

以来

  • 2.1.0

'/'
URI_OPTS_DELIM =

オプションを区切る文字。

以来

  • 2.1.0

'?'
INDIV_URI_OPTS_DELIM =
非推奨。

複数のオプションを区切る文字。

以来

  • 2.1.0

'&'
URI_OPTS_VALUE_DELIM =

オプションとその値を区切る文字。

以来

  • 2.1.0

'='
AUTH_USER_PWD_DELim =

ユーザー名とパスワードを区切る文字。

以来

  • 2.1.0

':'
AUTH_DELim =

認証資格情報を区切る文字。

以来

  • 2.1.0

'@'
SCHEME_DELim =

スキーム区切り文字。

以来

  • 2.5.0

'://'
CREDENTIALS_PLACEHOLDER =

URIが表示、ログ記録、またはエラーレポート作成のためにレンダリングされる場合に、クリアテキスト認証情報の代わりに使用されるプレースホルダー。

以来

  • 2.0.0

'<credentials>'
USERINFO_REDACTION_REGEX =

MongoDB 接続文字列の userinfo ポーションのパスワードなし一致。先頭にアンカーが設定され、権限コンポーネントにバウンドされます(最初の '/'、'?'、'#' で停止)が、そのコンポーネントの最後の '@' までは欲張りに一致するため、エスケープされていない '@' を含むパスワードは引き続き完全に隠されます。大文字と小文字を区別しないため、'MongoDB://' のような特殊なスキームも隠されます。パーサーはこれを拒否し、レダクターは結果のエラーで認証情報が漏えるようなものであってはなりません。

以来

  • 2.0.0

%r{\A(mongodb(?:\+srv)?://)[^/?#]*@}i.freeze
INVALID_OPTS_VALUE_DELim =

無効なオプション形式のエラーの詳細。

以来

  • 2.1.0

' オプションとその値は区切る必要があります ' +
" by ' { { URI_OPTS_VALUE_DELim } に よる '
UTES_USER_PWD =

URL エンコードされていないユーザー名またはパスワードのエラーの詳細。

以来

  • 2.1.0

'ユーザー名とパスワードは URL エンコードする必要があります。'
UTES_UNIX_SOCKET =

URL がエンコードされていない Unix ソケット パスのエラーの詳細。

以来

  • 2.1.0

'UNIX ドメイン ソケットは URL エンコードする必要があります。'
UTES_DATABASE =

認証データベース名が null でない場合のエラーの詳細。

以来

  • 2.1.0

'認証データベースはURL でエンコードする必要があります。'
INVALID_OPTS_DELim =

データベース区切り文字なしでオプションを提供する際のエラーの詳細。

以来

  • 2.1.0

オプションが指定されている場合は、 データベース区切り文字 ' # { DATABASE_DELim } ' が存在する必要があり ます 。
INVALID_HOST =

欠落しているホストのエラーの詳細。

以来

  • 2.1.0

'欠落しているホスト。少なくとも 1 つを提供する必要があります。'
INVALID_port =

無効なポートのエラーの詳細。

以来

  • 2.1.0

'ポートが無効です。ポートは 0 より大きく 65536 より小さい整数である必要があります'
READ_MODE_MAP =

URI 読み込み設定 (read preference) モードから Ruby ドライバー読み込み設定 (read preference) モードへのマップ

以来

  • 2.0.0

{
  'プライマリ' => : プライマリ,
  'プライマリ優先' => :primary_preferred,
  'セカンダリ' => :secondary,
  'セカンダリ' => :secondary_preferred,
  最も近い => :nearest
}.freeze
AUTH_MECH_MAP =

Ruby ドライバー メカニズムへの URI 認証メカニズムのマップ

以来

  • 2.0.0

{
  'GSSAPI' => :gssapi,
  'MONGODB-AWS' => :aws,
  #MONGODB-CR は非推奨であり、ドライバー バージョン3.0で削除されます
  'MONGODB-CR' => :mongodb_CR,
  'MONGODB-X509' => :mongodb_x 509,
  'PLAIN' => :lain,
   SCRAM-SHA- 1  => :SCRAM,
   SCRAM-SHA- 256  => :SCRAM 256,
}.freeze
SERVER_MONITORING_MODES =

serverMonitoringMode URI オプションの有効な値。

以来

  • 2.0.0

%w[ストリーム ポーリング auto].freeze
REPATEABLE_OPTIONS =

URI 内に複数回使用することが許可されるオプション。

「tls」と「ssl」のすべてのインスタンスが同じ値を持つという URI オプション仕様の要件に従うには、それらのオプションに対して渡されるすべての値を追跡する必要があります。これらが競合しないと仮定すると、URI を解析した後すぐに 1 つの値に圧縮されます。

以来

  • 2.1.0

%i[tags_sets ssl]

Loggableに含まれる定数

ログ可能::PRFIX

インスタンス属性の概要を折りたたむ

クラスメソッドの概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

Address::Validatorに含まれるメソッド

#validate_address_str!

Loggableに含まれるメソッド

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

コンストラクターの詳細

#初期化(string, オプション = {{}) = {} = 初期化] = URI

指定された string から新しい URI を作成します。

例:

新しい URI を作成します。

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

パラメーター:

  • string ( string )

    解析する URI 。

  • options ハッシュ (デフォルトは{}です)

    オプション。

オプション ハッシュ( options ):

  • :logger ロガー

    使用するカスタム ロガー。

次の値が発生します。

以来

  • 2.0.0



313
314
315
316
317
318
319
320
321
322
323
324
325
326
# ファイル 'lib/mongo/uri.rb', 行 313

デフォルト 初期化(string, options = {})
  発生 エラー::InvalidURI.新着情報(string, ' URI は nil ではなく string である必要があります。 ') ただし、 string
  発生 エラー::InvalidURI.新着情報(string, URI を解析できません。 ') 場合 string.空の場合

  @string = string
  @options = options
  parsed_scheme, _, 残り = string.パーティション(SCHEME_DELim)
  ただし、 parsed_scheme == スキーム
    raise_invalid_error!(" 無効なスキーム ' #{ parsed_scheme } '。スキームは ' #{ MONGODB_SCHEME } ' である必要があります。SRV URI を解析するには URI#get を使用し ます 。)
  end
  raise_invalid_error!( URI にホストがありません) 場合 残り.空の場合
  parse!(残り)
  validate_uri_options!
end

インスタンス属性の詳細

#オプション=オブジェクト(読み取り専用)

URI パーサー オブジェクト オプション。

以来

  • 2.0.0



37
38
39
# ファイル 'lib/mongo/uri.rb', 行 37

デフォルト options
  @options
end

サーバー=オブジェクト(読み取り専用)

URI で指定されたサーバー。

以来

  • 2.0.0



47
48
49
# ファイル 'lib/mongo/uri.rb', 行 47

デフォルト サーバー
  @servers
end

#uri_options =オブジェクト(読み取り専用)

Mongo::Options::URI で指定されたオプションを編集しました。

以来

  • 2.1.0



42
43
44
# ファイル 'lib/mongo/uri.rb', 行 42

デフォルト uri_options
  @uri_options
end

クラスメソッドの詳細

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

URI オブジェクトまたは SRVProtocol URI オブジェクトのいずれかを取得します。

例:

URI オブジェクトを取得します。

URI.get(string)

パラメーター:

  • string ( string )

    解析する URI 。

  • ops ハッシュ (デフォルトは{}です)

    オプション。

  • options ハッシュ

    カスタマイズ可能なオプションのセット

次の値を返します。

次の値が発生します。

以来

  • 2.5.0



262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
# ファイル 'lib/mongo/uri.rb', 行 262

デフォルト 自己.得る(string, ops = {})
  発生 エラー::InvalidURI.新着情報(string, ' URI は nil ではなく string である必要があります。 ') ただし、 string
  発生 エラー::InvalidURI.新着情報(string, URI を解析できません。 ') 場合 string.空の場合

  スキーム, = string.パーティション(SCHEME_DELim)
  ケース スキーム
  次の場合: MONGODB_SCHEME
    URI.新着情報(string, ops)
  次の場合: MONGODB_SRV_SCHEME
    SRVProtocol.新着情報(string, ops)
  else
    発生 エラー::InvalidURI.新着情報(string,
                                " 無効なスキーム ' # {schema } } '。スキームは ' # { MONGODB_SCHEME } ' または ' #{ MONGODB_SRV_SCHEME } ' である必要があり ます)
  end
end

.redact(string) ⇒ String

MongoDB 接続文字列のユーザー情報の部分をプレースホルダーで置き換えます。これにより、結果を安全にログ、表示、または例外メッセージに埋め込むことができます。

入力は解析されずに string として照合されるため、不正な URI に対しても安全に呼び出すことができます (これは InvalidURI がスローされるときとまったく同じです)。

パラメーター:

  • string ( string )

    生の URI string。

次の値を返します。

  • ( string )

    ユーザー情報がCREDENTIALS_PLACEHOLDERで置き換えられた URI。または、string でない場合やユーザー情報がない場合は入力は変更されません。

以来

  • 2.0.0



243
244
245
246
247
# ファイル 'lib/mongo/uri.rb', 行 243

デフォルト 自己.redact(string)
  return string ただし、 string.is_a?(文字列)

  string.サブ(USERINFO_REDACTION_REGEX, "\\1#{資格情報のプレースホルダー}@")
end

インスタンス メソッドの詳細

# client_optionsMongo::Options::Redacted

インスタンス化時にMongo ::Client に渡す必要があるオプション ハッシュを取得します。そのため、その点で の認証情報とデータベースをマージする必要はありません。ここには1つの点しかありません。

例:

クライアント オプションを取得します。

uri.client_options

次の値を返します。

以来

  • 2.0.0



288
289
290
291
292
293
294
# ファイル 'lib/mongo/uri.rb', 行 288

デフォルト client_options
  ops = uri_options.タップ 行う |ops|
    ops[:database] = @database 場合 @database
  end

  @user ? ops.merge(Credentials) : ops
end

認証情報=ハッシュ = ハッシュ

URI で提供されている認証情報を取得します。

例:

認証情報を取得します。

uri.credentials

次の値を返します。

  • ハッシュ

    認証情報。

    • :user [ string ] ユーザー。
    • :password [ string ] 提供されたパスワード。

以来

  • 2.0.0



338
339
340
# ファイル 'lib/mongo/uri.rb', 行 338

デフォルト Credentials
  { user: @user, パスワード: @password }
end

#databaseString

URI で指定されたデータベースを取得します。

例:

データベースを取得します。

uri.database

次の値を返します。

  • ( string )

    データベース。

以来

  • 2.0.0



350
351
352
# ファイル 'lib/mongo/uri.rb', 行 350

デフォルト database
  @database || Database::管理者
end

詳しくは、 を 検査しstring ます

URI の隠された、人間が読み取り可能な表現を返します。デフォルトの オブジェクト#inspect は、@string と @password をインスタンス変数としてダンプします。これにより、認証情報が漏えます。

次の値を返します。

  • ( string )

    非表示の検査ストリング。

以来

  • 2.0.0



373
374
375
# ファイル 'lib/mongo/uri.rb', 行 373

デフォルト 検査する
  "#<#{self.クラス.name}: #{reconstruct_uri}>"
end

# srv_records =オブジェクト

以来

  • 2.0.0



296
297
298
# ファイル 'lib/mongo/uri.rb', 行 296

デフォルト srv_records
  nil
end

# to_s = string

認証情報を削除した状態で、uri を string として取得します。

認証情報はCREDENTIALS_PLACEHOLDERに置き換えられるため、結果はログに記録したり表示したりしても安全です。元のユーザーとパスワードを復元するには、認証情報を使用します。

例:

URI をstringとして取得します。

uri.to_s

次の値を返します。

  • ( string )

    匿名化された uri string。

以来

  • 2.0.0



364
365
366
# ファイル 'lib/mongo/uri.rb', 行 364

デフォルト to_s
  再構築_uri
end