クラス: 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 のビューを表します。

以来

  • 2.0.0

名前空間で定義済み

Modules: ストリーム

定数の概要の削減

DEFAULT_ROOT =

デフォルトのルートプレフィックス。

以来

  • 2.0.0

'fs'.freeze
チャンク_INDEX =

チャンク コレクション インデックスの仕様。

以来

  • 2.0.0

{ :files_id => 1, :n => 1 }.freeze
FILES_INDEX =

ファイル コレクション インデックスの仕様。

以来

  • 2.1.0

{ ファイル名: 1, アップロードDate: 1 }.freeze

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

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

コンストラクターの詳細

#initialize(database, options = {}) ⇒ FSBucket

GridFS を作成します。

例:

GridFS を作成します。

Grid::FSBucket.new(database)

パラメーター:

  • database (Database)

    ファイルが存在するデータベース。

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

    GridFS オプション。

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

  • :bucket_name string

    ファイルとチャンク コレクションのプレフィックス。

  • :chunk_size 整数

    デフォルトのチャンク サイズ を上書きします。

  • :fs_name string

    ファイルとチャンク コレクションのプレフィックス。

  • :read ハッシュ

    読み込み設定(read preference)オプション。 ハッシュには以下の項目が含まれる場合があります。

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

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

    • : local_threshold

  • :session セッション

    使用するセッション。

  • :write ハッシュ

    非推奨。 :write_concern オプションと同等。

  • :write_concern ハッシュ

    書込み保証(write concern) オプション。 :w => Integer|String、 :fsync => ブール値、 :j => ブール値 にすることができます。

以来

  • 2.0.0



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, options = {})
  @database = database
  @options = 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 チャンク コレクションを返します。

次の値を返します。

以来

  • 2.0.0



88
89
90
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行88

デフォルト chunks_collection
  @chunks_collection
end

#databaseDatabase (readonly)

データベース データベースを返します。

次の値を返します。

  • (Database)

    データベース データベース。

以来

  • 2.0.0



93
94
95
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行93

デフォルト database
  @database
end

#files_collection ~コレクション(読み取り専用)

ファイル_コレクション のファイル コレクションを返します。

次の値を返します。

  • コレクション

    ファイル_コレクション ファイルのコレクション。

以来

  • 2.0.0



98
99
100
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行98

デフォルト ファイル_コレクション
  @files_collection
end

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

オプション FSbucket オプションを返します。

次の値を返します。

  • ハッシュ

    options FSbucket オプション。

以来

  • 2.1.0



103
104
105
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行103

デフォルト options
  @options
end

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

#削除( ID ) =結果

ID で識別される単一のファイルを GridFS から削除します。

例:

GridFS からファイルを削除します。

fs.delete(id)

パラメーター:

  • id BSON::ObjectIdObject

    削除するファイルの ID。

次の値を返します。

  • 結果

    削除の結果。

次の値が発生します。

以来

  • 2.1.0



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 から単一ファイルを削除します。

例:

GridFS からファイルを削除します。

fs.delete_one(file)

パラメーター:

  • ファイル Grid::File

    削除するファイル。

次の値を返します。

  • 結果

    削除の結果。

以来

  • 2.0.0



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 オブジェクトに書込みます。

例:

ファイルをダウンロードし、io オブジェクトに書き込みます。

fs.download_to_stream(id, io)

パラメーター:

  • id BSON::ObjectIdObject

    読み取るファイルの ID。

  • io (IO)

    書き込み先の io オブジェクト。

以来

  • 2.1.0



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)

例:

最新のリビジョニングをダウンロードします。

fs.download_to_stream_by_name('some-file.txt', io)

保存された ファイルの 2 番目のバージョンをダウンロードします。

fs.download_to_stream_by_name('some-file.txt', io, revision: 2)

パラメーター:

  • ファイル名 ( string )

    ファイルの名前。

  • io (IO)

    書き込み先の io オブジェクト。

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

    ダウンロードのオプション。

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

  • :regation 整数

    ダウンロードするファイルのリバージョン番号。 デフォルトは - 1で、最新バージョンです。

次の値が発生します。

以来

  • 2.1.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

指定されたセレクターに一致するファイル コレクション ドキュメントを検索します。

例:

ファイル名でファイル コレクション ドキュメントを検索します。

fs.find(filename: 'file.txt')

パラメーター:

  • セレクター ハッシュ (デフォルトはnil

    find で使用する セレクター 。

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

    find のオプション。

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

  • :allow_disk_use truefalse

    サーバーが検索操作を実行中に一時データをディスクに書き込むことができるかどうか。

  • :batch_size 整数

    MongoDB からの結果の各バッチで返されたドキュメントの数。

  • :limit 整数

    クエリから返されるDocsの最大数。

  • :no_cursor_timeout truefalse

    サーバーは通常、非アクティブな期間( 10分)の後にアイドル カーソルをタイムアウトして、過剰なメモリの使用を防ぎます。 それを防ぐには、このオプションを に設定します。

  • :skip 整数

    結果を返す前にスキップするDocsの数。

  • :sort ハッシュ

    結果セットがソートされるキーと方向のペア。

次の値を返します。

  • (CollectionView)

    コレクションビュー。

以来

  • 2.1.0



134
135
136
137
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/ Grid/fs_bucket.rb ', 行134

デフォルト find(セレクター = nil, options = {})
  ops = options.merge(read: read_preference) 場合 read_preference
  ファイル_コレクション.find(セレクター, ops || options)
end

# find_one (Selector = nil) = Grid::File

非推奨。

代わりに - 1の制限で #find を使用してください。 バージョン3.0で削除されます。

GridFS 内のファイルを検索します。

例:

ID でファイルを検索します。

fs.find_one(_id: id)

ファイル名でファイルを検索します。

fs.find_one(filename: 'test.txt')

パラメーター:

  • セレクター ハッシュ (デフォルトはnil

    セレクター。

次の値を返します。

以来

  • 2.0.0



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 に単一のファイルを挿入します。

例:

ファイルを 1 つ挿入します。

fs.insert_one(file)

パラメーター:

  • ファイル Grid::File

    挿入するファイル。

次の値を返します。

  • BSON::ObjectId

    ファイル ID。

以来

  • 2.0.0



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 で指定されたファイルをダウンロードできるストリームを開きます。

例:

ファイルをダウンロードできるストリームを開きます。

fs.open_download_stream(id)

パラメーター:

  • id BSON::ObjectIdObject

    読み取るファイルの ID。

  • options ハッシュ (デフォルトはnil

    オプション。

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

  • :file_info_doc BSON::Document

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

生成パラメータ:

  • この ハッシュ

    読み取りストリーム。

次の値を返します。

  • Stream::Read

    読み取り対象のストリーム。

以来

  • 2.1.0



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, options = nil)
  options = Utils.slow_symbols_keys(options || {})
  read_stream(id, **options).タップ 行う |ストリーム|
    場合 ブロック_指定
      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)

例:

最新のリビジョニングをダウンロードするには、ストリームを開いてください。

fs.open_download_stream_by_name('some-file.txt')

保存された ファイルの 2 番目のバージョンをダウンロードするには、ストリームを開きます。

fs.open_download_stream_by_name('some-file.txt', revision: 2)

パラメーター:

  • ファイル名 ( string )

    ファイルの名前。

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

    ダウンロードのオプション。

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

  • :regation 整数

    ダウンロードするファイルのリバージョン番号。 デフォルトは - 1で、最新バージョンです。

生成パラメータ:

  • この ハッシュ

    読み取りストリーム。

次の値を返します。

  • Stream::Read

    読み取り対象のストリーム。

次の値が発生します。

以来

  • 2.1.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 へのアップロードストリームを開きます。

パラメーター:

  • ファイル名 ( string )

    GridFS 内のファイルの名前。

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

    書込みストリームのオプション。

  • options ハッシュ

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

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

  • :file_id オブジェクト

    任意の一意のファイル ID。 ファイル ID が指定されていない場合は、 BSON::ObjectId が自動的に生成されます。

  • :chunk_size 整数

    デフォルトのチャンク サイズ を上書きします。

  • :metadata ハッシュ

    ファイル コレクション ドキュメントの「メタデータ」フィールドのユーザー データ。

  • :content_type string

    ファイルの内容型。 非推奨です。代わりにメタデータ ドキュメントを使用してください。

  • :aliases 配列<String>

    エイリアスのリスト。 非推奨です。代わりにメタデータ ドキュメントを使用してください。

生成パラメータ:

  • この ハッシュ

    書込みストリーム。

次の値を返します。

以来

  • 2.1.0



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 のプレフィックスを取得する

例:

プレフィックスを取得します。

fs.prefix

次の値を返します。

  • ( string )

    GridFS プレフィックス。

以来

  • 2.0.0



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

次の値を返します。

  • BSON::Document

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

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

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

    • : local_threshold

以来

  • 2.0.0



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 = options[:read] || database.read_preference
    場合 BSON::ドキュメント === pref
      pref
    else
      BSON::ドキュメント.新着情報(pref)
    end
  end
end

#upload_from_stream(filename, io, opts = {}) ⇒ BSON::ObjectId

ユーザー ファイルを GridFS バケットにアップロードします。 ソース ストリームからユーザー ファイルの内容を読み取り、 チャンク コレクションにチャンクとしてアップロードします。 すべてのチャンクがアップロードされると、 ファイル コレクション内のファイル名用の ファイル コレクション ドキュメントが作成されます。

例:

GridFS バケットにファイルをアップロードします。

fs.upload_from_stream('a-file.txt', file)

パラメーター:

  • ファイル名 ( string )

    アップロードするファイルのファイル名。

  • io (IO)

    アップロード元のソース IO ストリーム。

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

    書込みストリームのオプション。

  • options ハッシュ

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

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

  • :file_id オブジェクト

    任意の一意のファイル ID。 ObjectId はそれ以外の方法で生成されます。

  • :chunk_size 整数

    デフォルトのチャンク サイズ を上書きします。

  • :metadata ハッシュ

    ファイル コレクション ドキュメントの「メタデータ」フィールドのユーザー データ。

  • :content_type string

    ファイルの内容型。 非推奨です。代わりにメタデータ ドキュメントを使用してください。

  • :aliases 配列<String>

    エイリアスのリスト。 非推奨です。代わりにメタデータ ドキュメントを使用してください。

次の値を返します。

  • BSON::ObjectId

    ObjectIdファイルID 。

以来

  • 2.1.0



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

例:

書込み保証 (write concern) を取得します。

stream.write_concern

次の値を返します。

以来

  • 2.1.0



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