クラス: Mongo::Grid::FSbucket
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Grid::FSbucket
- 次による拡張機能。
- 転送可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb 、
build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream.rb,
build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/read.rb,
build/ruby-Driver-v 2.19 /lib/mongo/ Grid/stream/write.rb
Overview
データベース内の GridFS のビューを表します。
名前空間で定義済み
Modules: ストリーム
定数の概要の削減
- DEFAULT_ROOT =
デフォルトのルートプレフィックス。
'fs'.freeze
- チャンク_INDEX =
チャンク コレクション インデックスの仕様。
{ :files_id => 1, :n => 1 }.freeze
- FILES_INDEX =
ファイル コレクション インデックスの仕様。
{ ファイル名: 1, アップロードDate: 1 }.freeze
インスタンス属性の概要を折りたたむ
-
#chunks_collection ⇒ Collection
readOnly
Chunks_collection チャンクのコレクション。
-
#database ⇒ Database
readOnly
Database The database.
-
#files_collection ⇒ Collection
readOnly
ファイル_コレクション ファイルのコレクション。
-
#options ⇒ Hash
readOnly
オプション FSbucket オプション。
インスタンス メソッドの概要を折りたたむ
-
#削除( ID ) = 結果
ID で識別される単一のファイルを GridFS から削除します。
-
# delete_one (ファイル) = 結果
GridFS から単一ファイルを削除します。
-
ダウンロード_to_stream ( ID , io) = オブジェクト
ID で指定されたファイルの内容をダウンロードし、宛先 io オブジェクトに書込みます。
-
ダウンロード_to_stream_by_name(ファイル名, io, opts = {}) = オブジェクト
ファイル名とオプションの 変更によって指定された保存済みファイルの内容をダウンロードし、その内容を宛先 io オブジェクトに書込みます。
-
# find (Selector = nil、Options = {}) = CollectionView
指定されたセレクターに一致するファイル コレクション ドキュメントを検索します。
-
# find_one (Selector = nil) = Grid::File
非推奨
非推奨。
代わりに - 1の制限で #find を使用してください。 バージョン3.0で削除されます。
-
#initialize(database, options = {}) ⇒ FSBucket
コンストラクター
GridFS を作成します。
-
#insert_one(file) ⇒ BSON::ObjectId
非推奨
非推奨。
代わりに、#upload_from_stream または #open_upload_stream を使用してください。 バージョン3.0で削除されます。
-
#open_Download_stream ( ID 、オプション = nil){{|The| ... } = Stream::Read
ID で指定されたファイルをダウンロードできるストリームを開きます。
-
#open_Download_stream_by_name (ファイル名、opts = {}){{|The| ... } = Stream::Read
アプリケーションがファイル名で指定された保存済みファイルの内容と オプションのリダイレクトを読み取ることができるストリームを開きます。
-
#open_upload_stream (ファイル名、opts ={{}){{|The| ... } = Stream::Write
ファイルまたは long の内容を書き込むことができる GridFS へのアップロードストリームを開きます。
-
# prefix = string
GridFS のプレフィックスを取得します。
-
#read_preference = BSON::Document
読み込み設定 (read preference) を取得します。
-
#upload_from_stream(filename, io, opts = {}) ⇒ BSON::ObjectId
ユーザー ファイルを GridFS バケットにアップロードします。
-
#write_concern = Mongo::WriteConcern
書込み保証 (write concern) を取得します。
コンストラクターの詳細
#initialize(database, options = {}) ⇒ FSBucket
GridFS を作成します。
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行70 デフォルト 初期化(database, = {}) @database = database @options = .dup =開始 WriteConcern オブジェクト サポート の場合 @options[:write_concern].is_a?(WriteConcern::Base) # インスタンスをキャッシュして、不必要に再構築されないようにします。 @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =end @options.freeze @chunks_collection = database[chunks_name] @files_collection = database[files_name] end |
インスタンス属性の詳細
# chunks_collection =コレクション(読み取り専用)
chunks_collection チャンク コレクションを返します。
88 89 90 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行88 デフォルト chunks_collection @chunks_collection end |
#database ⇒ Database (readonly)
データベース データベースを返します。
93 94 95 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行93 デフォルト database @database end |
#files_collection ~コレクション(読み取り専用)
ファイル_コレクション のファイル コレクションを返します。
98 99 100 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行98 デフォルト ファイル_コレクション @files_collection end |
オプション=ハッシュ(読み取り専用)
オプション FSbucket オプションを返します。
103 104 105 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行103 デフォルト @options end |
インスタンス メソッドの詳細
#削除( ID ) =結果
ID で識別される単一のファイルを GridFS から削除します。
220 221 222 223 224 225 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行220 デフォルト 削除(id) 結果 = ファイル_コレクション.find({ :_id => id }, @options).delete_one chunks_collection.find({ :files_id => id }, @options).delete_many 発生 エラー::ファイルではない.新着情報(id, :id) 場合 結果.n == 0 結果 end |
# delete_one (ファイル) =結果
GridFS から単一ファイルを削除します。
204 205 206 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行204 デフォルト delete_one(ファイル) 削除(ファイル.id) end |
ダウンロード_to_stream ( ID , io) =オブジェクト
ID で指定されたファイルの内容をダウンロードし、宛先 io オブジェクトに書込みます。
266 267 268 269 270 271 272 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行266 デフォルト ダウンロード_to_ストリーム(id, io) open_ダウンロード_ストリーム(id) 行う |ストリーム| ストリーム.各 行う |チャンク| io < チャンク end end end |
ダウンロード_to_stream_by_name(ファイル名, io, opts = {}) =オブジェクト
ファイル名とオプションの 変更によって指定された保存済みファイルの内容をダウンロードし、その内容を宛先 io オブジェクトに書込みます。
バージョン番号は、次のように定義されます。 0 = 保存されていた元のファイル1 = 最初のリ2 = 2 番目のリビジョニングなど - 2 = 最新の 2 番目のリビジョニング - 1 = 最新のリビジョニング
# @example 元のファイルをダウンロードします。
fs.download_to_stream_by_name('some-file.txt', io, revision: 0)
359 360 361 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行359 デフォルト ダウンロード_to_stream_by_name(ファイル名, io, ops = {}) ダウンロード_to_ストリーム(open_Download_stream_by_name(ファイル名, ops).file_id, io) end |
# find (Selector = nil、Options = {}) = CollectionView
指定されたセレクターに一致するファイル コレクション ドキュメントを検索します。
134 135 136 137 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行134 デフォルト find(セレクター = nil, = {}) ops = .merge(read: read_preference) 場合 read_preference ファイル_コレクション.find(セレクター, ops || ) end |
# find_one (Selector = nil) = Grid::File
代わりに - 1の制限で #find を使用してください。 バージョン3.0で削除されます。
GridFS 内のファイルを検索します。
155 156 157 158 159 160 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行155 デフォルト find_one(セレクター = nil) file_info = ファイル_コレクション.find(セレクター).最初に return nil ただし、 file_info チャンク = chunks_collection.find(:files_id => file_info[:_id]).sort(:n => 1) グリッド::ファイル.新着情報(チャンク.to_a, オプション::マッパー.transform(file_info, グリッド::ファイル::info::mappings.invert)) end |
#insert_one(file) ⇒ BSON::ObjectId
代わりに、#upload_from_stream または #open_upload_stream を使用してください。 バージョン3.0で削除されます。
GridFS に単一のファイルを挿入します。
175 176 177 178 179 180 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行175 デフォルト insert_one(ファイル) @indexes ||= ensure_indexes! chunks_collection.insert_many(ファイル.チャンク) ファイル_コレクション.insert_one(ファイル.info) ファイル.id end |
#open_Download_stream ( ID 、オプション = nil){{|The| ... } = Stream::Read
ID で指定されたファイルをダウンロードできるストリームを開きます。
243 244 245 246 247 248 249 250 251 252 253 254 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行243 デフォルト open_ダウンロード_ストリーム(id, = nil) = Utils.slow_symbols_keys( || {}) read_stream(id, **).タップ 行う |ストリーム| 場合 ブロック_指定 begin ノードの数 ストリーム 保証する ストリーム.閉じる end end end end |
#open_Download_stream_by_name (ファイル名、opts = {}){{|The| ... } = Stream::Read
アプリケーションがファイル名で指定された保存済みファイルの内容と オプションのリダイレクトを読み取ることができるストリームを開きます。
バージョン番号は、次のように定義されます。 0 = 保存されていた元のファイル1 = 最初のリ2 = 2 番目のリビジョニングなど - 2 = 最新の 2 番目のリビジョニング - 1 = 最新のリビジョニング
# @example ストリームを開き、元のファイルをダウンロードします。
fs.open_download_stream_by_name('some-file.txt', revision: 0)
308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行308 デフォルト open_Download_stream_by_name(ファイル名, ops = {}, &ブロック) 改訂 = ops.fetch(:regation, -1) 場合 改訂 < 0 スキップ = 改訂.abs - 1 sort = { ' loupDate ' => mongo::Index::下降 } else スキップ = 改訂 sort = { ' loupDate ' => mongo::Index::上昇 } end file_info_doc = ファイル_コレクション.find({ ファイル名: ファイル名} , sort: sort, skip: スキップ, limit: -1).最初に ただし、 file_info_doc 発生 エラー::ファイルではない.新着情報(ファイル名, :filename) ただし、 ops[:regation] 発生 エラー::InvalidFileRevision.新着情報(ファイル名, ops[:regation]) end open_ダウンロード_ストリーム(file_info_doc[:_id], file_info_doc: file_info_doc, &ブロック) end |
#open_upload_stream (ファイル名、opts ={{}){{|The| ... } = Stream::Write
ファイルまたは long の内容を書き込むことができる GridFS へのアップロードストリームを開きます。
389 390 391 392 393 394 395 396 397 398 399 400 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行389 デフォルト open_upload_stream(ファイル名, ops = {}) ops = Utils.slow_symbols_keys(ops) write_stream(ファイル名, **ops).タップ 行う |ストリーム| 場合 ブロック_指定 begin ノードの数 ストリーム 保証する ストリーム.閉じる end end end end |
# prefix = string
GridFS のプレフィックスを取得する
190 191 192 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行190 デフォルト prefix @options[:fs_name] || @options[:bucket_name] || DEFAULT_ROOT end |
#read_preference = BSON::Document
このメソッドは常に BSON::Document インスタンスを返します。ただし、FSbucket コンストラクターは :read のタイプを BSON::Document ではなくハッシュとして指定しているにもかかわらず
読み込み設定 (read preference) を取得します。
460 461 462 463 464 465 466 467 468 469 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行460 デフォルト read_preference @read_preference ||= begin pref = [:read] || database.read_preference 場合 BSON::ドキュメント === pref pref else BSON::ドキュメント.新着情報(pref) end end end |
#upload_from_stream(filename, io, opts = {}) ⇒ BSON::ObjectId
ユーザー ファイルを GridFS バケットにアップロードします。 ソース ストリームからユーザー ファイルの内容を読み取り、 チャンク コレクションにチャンクとしてアップロードします。 すべてのチャンクがアップロードされると、 ファイル コレクション内のファイル名用の ファイル コレクション ドキュメントが作成されます。
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行430 デフォルト return_from_stream(ファイル名, io, ops = {}) open_upload_stream(ファイル名, ops) 行う |ストリーム| begin ストリーム.書込み (write)(io) # IOError と SystemCallError は、io の読み取りエラー用です。 # Error::SocketError と Error::SocketTimeoutError は MongoDB への 書込み (write)。 ヘルプ IOError, SystemCallError, エラー::SocketError, エラー::SocketTimeoutError begin ストリーム.中止 ヘルプ エラー::OperationFailure end 発生 end end.file_id end |
#write_concern = Mongo::WriteConcern
書込み保証 (write concern) を取得します。
479 480 481 482 483 484 485 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行479 デフォルト write_concern @write_concern ||= 場合 wco = @options[:write_concern] || @options[:write] WriteConcern.得る(wco) else database.write_concern end end |