クラス: Mongo::Grid::FSBbucket::Stream::Read

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
Enumerable
定義:
lib/mongo/ Grid/stream/read.rb

Overview

FS バケットからファイルを読み取るストリーム。

以来

  • 2.1.0

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

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

コンストラクターの詳細

#初期化(fs, オプション) =読み取り

FS バケットからファイルを読み取るためのストリームを作成します。

例:

ストリームを作成します。

Stream::Read.new(fs, options)

パラメーター:

  • fs FS バケット

    GridFS バケット オブジェクト。

  • options ハッシュ

    読み取りストリーム オプション。

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

  • :file_info_doc BSON::Document

    内部ドライバーのみを使用します。 ファイル情報として使用する BSON ドキュメント 。

以来

  • 2.1.0



54
55
56
57
58
59
60
61
62
63
64
65
66
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 54

デフォルト 初期化(fs, options)
  @fs = fs
  @options = options.dup
  @file_id = @options.削除(:file_id)
  @options.freeze
  @open = true
  @timeout_holder = CsonTimeoutH older.新着情報(
    operation_timeouts: {
      operation_timeout_ms: options[:timeout_ms],
      inherited_timeout_ms: fs.database.timeout_ms
    }
  )
end

インスタンス属性の詳細

file_id = BSON #::ObjectIdオブジェクト(読み取り専用)

読み取られているファイルのIDを返します。

次の値を返します。

  • BSON::ObjectIdObject

    file_id 読み込まれているファイルの ID。

以来

  • 2.1.0



40
41
42
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 40

デフォルト file_id
  @file_id
end

# fsFSbucket (読み取り専用)

fs このストリームが読み取る fs バケットを返します。

次の値を返します。

  • FS バケット

    fs このストリームが読み取る fs バケット。

以来

  • 2.1.0



30
31
32
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 30

デフォルト fs
  @fs
end

オプション=ハッシュ(読み取り専用)

オプション ストリーム オプションを返します。

次の値を返します。

  • ハッシュ

    options ストリーム オプション。

以来

  • 2.1.0



35
36
37
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 35

デフォルト options
  @options
end

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

#閉じる= BSON::ObjectIdオブジェクト

読み取りストリームを閉じます。

ストリームがすでに閉じられている場合、このメソッドは何も実行しません。

例:

ストリームを閉じます。

stream.close

次の値を返します。

  • BSON::ObjectIdObject

    ファイル ID。

以来

  • 2.1.0



127
128
129
130
131
132
133
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 127

デフォルト 閉じる
  場合 @open
    表示.close_query
    @open = false
  end
  file_id
end

#閉じました= truefalse

ストリームが閉じられているかどうか。

例:

ストリームが閉じられているかどうか。

stream.closed?

次の値を返します。

  • truefalse

    ストリームが閉じているかどうか。

以来

  • 2.1.0



143
144
145
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 143

デフォルト 閉じましたか
  !@open
end

{|Each| ... } =列挙型

FS バケットからストリームされたチャンク データを反復処理します。

例:

チャンク データを反復処理します。

stream.each do |data|
  buffer << data
end

生成パラメータ:

  • ハッシュ

    ファイル データの チャンク 。

次の値を返します。

  • 列挙型

    列挙型。

次の値が発生します。

以来

  • 2.1.0



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_infoFile::Info

注:

ファイル情報はストリームにキャッシュされます。 Subsequent calls to file_info will return the same information that the first call returned, and will not query the database again.

読み取られているファイルのファイル コレクション ファイル情報ドキュメントを取得します。

次の値を返します。

以来

  • 2.1.0



181
182
183
184
185
186
187
188
189
190
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 181

デフォルト file_info
  @file_info ||= begin
    doc = options[: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

すべてのファイル データを読み取ります。

例:

ファイル データを読みとります。

stream.read

次の値を返します。

  • ( string )

    ファイル データ。

次の値が発生します。

以来

  • 2.1.0



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) を取得します。

次の値を返します。

  • BSON::Document

    読み込み設定 (read preference)。 ドキュメントには、以下のフィールドが含まれる場合があります。

    • :モード-- シンボルとして指定された読み込み設定 (read preference) )有効な値は、プライマリプライマリ_優先順位セカンダリセカンダリ_優先順位最も近い値です。
    • :tags_sets -- ハッシュの配列。
    • : local_threshold

以来

  • 2.1.0



160
161
162
163
164
165
166
167
168
169
ファイル 'lib/mongo/ Grid/stream/read.rb' 、行 160

デフォルト read_preference
  @read_preference ||= begin
    pref = options[:read] || fs.read_preference
    場合 pref.is_a?(BSON::ドキュメント)
      pref
    else
      BSON::ドキュメント.新着情報(pref)
    end
  end
end