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

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
Enumerable
定義:
build/ruby-Driver-v 2.19 /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



56
57
58
59
60
61
62
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行56

デフォルト 初期化(fs, options)
  @fs = fs
  @options = options.dup
  @file_id = @options.削除(:file_id)
  @options.freeze
  @open = true
end

インスタンス属性の詳細

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

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

次の値を返します。

  • BSON::ObjectIdObject

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

以来

  • 2.1.0



42
43
44
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行42

デフォルト file_id
  @file_id
end

# fsFSbucket (読み取り専用)

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

次の値を返します。

  • FS バケット

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

以来

  • 2.1.0



32
33
34
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行32

デフォルト fs
  @fs
end

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

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

次の値を返します。

  • ハッシュ

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

以来

  • 2.1.0



37
38
39
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行37

デフォルト options
  @options
end

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

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

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

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

例:

ストリームを閉じます。

stream.close

次の値を返します。

  • BSON::ObjectIdObject

    ファイル ID。

以来

  • 2.1.0



125
126
127
128
129
130
131
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行125

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

#閉じました= truefalse

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

例:

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

stream.closed?

次の値を返します。

  • truefalse

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

以来

  • 2.1.0



141
142
143
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行141

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

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

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

例:

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

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

生成パラメータ:

  • ハッシュ

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

次の値を返します。

  • 列挙型

    列挙型。

次の値が発生します。

以来

  • 2.1.0



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行78

デフォルト 
  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_read < num_chunks
        発生 エラー::欠落ファイルチャンク.新着情報(num_chunks, num_read)
      end
    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



179
180
181
182
183
184
185
186
187
188
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行179

デフォルト file_info
  @file_info ||= begin
    doc = options[:file_info_doc] || fs.ファイル_コレクション.find(_id: file_id).最初に
    場合 doc
      ファイル::info.新着情報(オプション::マッパー.transform(doc, ファイル::info::mappings.invert))
    else
      nil
    end
  end
end

#read = string

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

例:

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

stream.read

次の値を返します。

  • ( string )

    ファイル データ。

次の値が発生します。

以来

  • 2.1.0



111
112
113
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行111

デフォルト 読み取り
  to_a.join
end

#read_preference = BSON::Document

注:

このメソッドは常に BSON::Document インスタンスを返します。ただし、コンストラクターが :read の型を BSON::Document ではなくハッシュとして指定しているにもかかわらずです。

読み込み設定 (read preference) を取得します。

次の値を返します。

  • BSON::Document

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

    • : モード- シンボルとして指定された読み込み設定(read preference)。有効な値は、 :primary:primary_preferred:secondary:secondary_preferred:nearestです。

    • : tags_sets - ハッシュの配列。

    • : local_threshold

以来

  • 2.1.0



158
159
160
161
162
163
164
165
166
167
ファイル ' build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb ', 行158

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