クラス: Mongo::Grid::FSBbucket::Stream::Read
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Grid::FSバケット::Stream::Read
- 次のことが含まれます。
- Enumerable
- 定義:
- lib/mongo/ Grid/stream/read.rb
Overview
FS バケットからファイルを読み取るストリーム。
インスタンス属性の概要を折りたたむ
-
#file_id ⇒ BSON::ObjectId, Object
readOnly
ファイル_id 読み取られているファイルの ID。
-
#fs ⇒ FSBucket
readOnly
Fs このストリームが読み取る fs バケット。
-
#options ⇒ Hash
readOnly
オプション ストリーム オプション。
インスタンス メソッドの概要を折りたたむ
-
#閉じる= BSON::ObjectId, オブジェクト
読み取りストリームを閉じます。
-
#閉じました= true、false
ストリームが閉じられているかどうか。
-
各{|Each| ... } = 列挙型
FS バケットからストリームされたチャンク データを反復処理します。
-
#file_info ⇒ File::Info
読み取られているファイルのファイル コレクション ファイル情報ドキュメントを取得します。
-
#初期化(fs, オプション) = 読み取り
コンストラクター
FS バケットからファイルを読み取るためのストリームを作成します。
-
#read = string
すべてのファイル データを読み取ります。
-
#read_preference = BSON::Document
読み込み設定 (read preference) を取得します。
コンストラクターの詳細
#初期化(fs, オプション) =読み取り
FS バケットからファイルを読み取るためのストリームを作成します。
54 55 56 57 58 59 60 61 62 63 64 65 66 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 54 デフォルト 初期化(fs, ) @fs = fs @options = .dup @file_id = @options.削除(:file_id) @options.freeze @open = true @timeout_holder = CsonTimeoutH older.新着情報( operation_timeouts: { operation_timeout_ms: [:timeout_ms], inherited_timeout_ms: fs.database.timeout_ms } ) end |
インスタンス属性の詳細
file_id = BSON #::ObjectId 、オブジェクト(読み取り専用)
読み取られているファイルのIDを返します。
40 41 42 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 40 デフォルト file_id @file_id end |
# fs → FSbucket (読み取り専用)
fs このストリームが読み取る fs バケットを返します。
30 31 32 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 30 デフォルト fs @fs end |
オプション=ハッシュ(読み取り専用)
オプション ストリーム オプションを返します。
35 36 37 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 35 デフォルト @options end |
インスタンス メソッドの詳細
#閉じる= BSON::ObjectId 、オブジェクト
読み取りストリームを閉じます。
ストリームがすでに閉じられている場合、このメソッドは何も実行しません。
127 128 129 130 131 132 133 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 127 デフォルト 閉じる 場合 @open 表示.close_query @open = false end file_id end |
#閉じました= true 、 false
ストリームが閉じられているかどうか。
143 144 145 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 143 デフォルト 閉じましたか !@open end |
各{|Each| ... } =列挙型
FS バケットからストリームされたチャンク データを反復処理します。
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 82 デフォルト 各 concern_readable. info = file_info num_chunks = (info.Length + info.chunk_size - 1) / info.chunk_size num_read = 0 場合 ブロック_指定 表示.each_with_index.reduce(0) 行う |long_read, (doc, index)| チャンク = グリッド::ファイル::チャンク.新着情報(doc) validate!(index, num_chunks, チャンク, long_read) データ = チャンク.データ.データ ノードの数 データ num_read += 1 long_read + データ.サイズ end.タップ 行う 発生 エラー::欠落ファイルチャンク.新着情報(num_chunks, num_read) 場合 num_read < num_chunks end else 表示.to_enum end end |
#file_info ⇒ File::Info
ファイル情報はストリームにキャッシュされます。 Subsequent calls to file_info will return the same information that the first call returned, and will not query the database again.
読み取られているファイルのファイル コレクション ファイル情報ドキュメントを取得します。
181 182 183 184 185 186 187 188 189 190 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 181 デフォルト file_info @file_info ||= begin doc = [:file_info_doc] || fs.ファイル_コレクション.find( { _id: file_id }, { timeout_ms: @timeout_holder.retention_timeout_ms。 } ).最初に ファイル::info.新着情報(オプション::マッパー.transform(doc, ファイル::info::mappings.invert)) 場合 doc end end |
#read = string
すべてのファイル データを読み取ります。
113 114 115 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 113 デフォルト 読み取り to_a.join end |
#read_preference = BSON::Document
このメソッドは常に BSON::Document インスタンスを返します。ただし、コンストラクターが :read の型を BSON::Document ではなくハッシュとして指定しているにもかかわらずです。
読み込み設定 (read preference) を取得します。
160 161 162 163 164 165 166 167 168 169 |
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 160 デフォルト read_preference @read_preference ||= begin pref = [:read] || fs.read_preference 場合 pref.is_a?(BSON::ドキュメント) pref else BSON::ドキュメント.新着情報(pref) end end end |