클래스: Mongo::Grid::FSBucket
- 상속:
-
객체
- 객체
- Mongo::Grid::FSBucket
- 확장자:
- 전달 가능
- 다음에 정의됨:
- 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb,
빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/ 쓰기 (write).rb
개요
데이터베이스에 있는 GridFS의 뷰를 나타냅니다.
네임스페이스 아래에 정의됨
모듈: 스트림
상수 요약 접기
- DEFAULT_ROOT =
기본값 루트 접두사입니다.
'fs'.동결
- CHUNKS_INDEX =
청크 컬렉션 인덱스의 사양입니다.
{ :files_id => 1, :n => 1 }.동결
- FILES_INDEX =
파일 컬렉션 인덱스의 사양입니다.
{ 파일 이름: 1, UploadDate: 1 }.동결
인스턴스 속성 요약 접기
-
#chunks_collection ⇒ Collection
읽기 전용
Chunks_collection 청크 컬렉션 입니다.
-
#database ⇒ Database
읽기 전용
Database The database.
-
#files_collection ⇒ Collection
읽기 전용
Files_collection 파일 컬렉션 입니다.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 FSBucket 옵션입니다.
인스턴스 메서드 요약 접기
-
#삭제(ID) ⇒ 결과
GridFS에서 ID로 식별되는 단일 파일을 제거합니다.
-
#delete_one(파일) ⇒ 결과
GridFS 에서 단일 파일 을 제거합니다.
-
#download_to_stream(ID, io) ⇒ 객체
ID 로 지정된 파일 의 내용을 다운로드 하여 대상 io 객체 에 씁니다.
-
#download_to_stream_by_name(filename, io, opts = {}) ⇒ 객체
options 의 파일 이름 및 수정본으로 지정된 저장된 파일 의 내용을 다운로드 하고 대상 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, options = nil) {|The| ... } ⇒ Stream::Read
ID 로 지정된 파일 을 다운로드할 수 있는 스트림 을 엽니다.
-
#open_download_stream_by_name(filename, opts = {}) {|The| ... } ⇒ Stream::Read
애플리케이션 이 옵션의 파일 이름 및 수정본으로 지정된 저장된 파일 의 내용을 읽을 수 있는 스트림 을 엽니다.
-
#open_upload_stream(filename, opts = {}) {|The| ... } ⇒ Stream::Write
파일 또는 블롭의 콘텐츠를 쓸 수 있는 GridFS에 대한 업로드 스트림을 엽니다.
-
#접두사 ⇒ string
GridFS 의 접두사를 가져옵니다.
-
#read_preference ⇒ BSON::Document
읽기 설정을 가져옵니다.
-
#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 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 70 def 초기화(database, = {}) @database = database @options = .dup =begin WriteConcern 객체 지원 if @options[:write_concern].is_a?(WriteConcern::Base) # 인스턴스를 캐시하여 불필요하게 재구성하지 않도록 합니다. @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =end @options.동결 @chunks_collection = database[chunks_name] @files_collection = database[파일 이름] end |
인스턴스 속성 세부 정보
#chunks_collection ⇒ 컬렉션 (읽기 전용)
반환값 chunks_collection 청크 컬렉션 입니다.
88 89 90 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 88 def chunks_collection @chunks_collection end |
#database ⇒ Database (readonly)
반환 데이터베이스 데이터베이스입니다.
93 94 95 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 93 def database @database end |
#파일 컬렉션 ⇒ 컬렉션 (읽기 전용)
반환값 파일 컬렉션 파일 컬렉션 입니다.
98 99 100 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 98 def 파일 컬렉션 @files_collection end |
#options ⇒ 해시 (읽기 전용)
반환 옵션 FSBucket 옵션입니다.
103 104 105 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 103 def @options end |
인스턴스 메서드 세부 정보
#삭제(ID) ⇒ 결과
GridFS에서 ID로 식별되는 단일 파일을 제거합니다.
220 221 222 223 224 225 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 220 def 삭제(id) 결과 = 파일 컬렉션.찾기({ :_id => id }, @options).delete_one chunks_collection.찾기({ :files_id => id }, @options).delete_many 올리다 오류::FileNotFound.신규(id, :id) 만약 결과.n == 0 결과 end |
#delete_one(file) ⇒ 결과
GridFS 에서 단일 파일 을 제거합니다.
204 205 206 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 204 def delete_one(파일) 삭제(파일.id) end |
#download_to_stream(ID, io) ⇒ 객체
ID 로 지정된 파일 의 내용을 다운로드 하여 대상 io 객체 에 씁니다.
266 267 268 269 270 271 272 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 266 def download_to_stream(id, io) open_download_stream(id) do |스트림| 스트림.각 do |청크| io << 청크 end end end |
#download_to_stream_by_name(filename, io, opts = {}) ⇒ 객체
options 의 파일 이름 및 수정본으로 지정된 저장된 파일 의 내용을 다운로드 하고 대상 io 객체 에 내용을 씁니다.
수정본 번호는 다음과 같이 정의됩니다: 0 = 원래 저장된 파일 1 = 첫 번째 수정본 2 = 두 번째 수정본 등... -2 = 두 번째로 최근 수정본 -1 = 가장 최근 수정본
# @example 원본 파일을 다운로드합니다.
fs.download_to_stream_by_name('some-file.txt', io, revision: 0)
359 360 361 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 359 def download_to_stream_by_name(파일 이름, io, opts = {}) download_to_stream(open_download_stream_by_name(파일 이름, opts).file_id, io) end |
#find(selector = nil, options = {}) ⇒ CollectionView
지정된 선택기와 일치하는 파일 컬렉션 문서를 찾습니다.
134 135 136 137 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 134 def 찾기(선택기 = nil, = {}) opts = .merge(읽기: read_preference) 만약 read_preference 파일 컬렉션.찾기(선택기, opts || ) end |
#find_one(selector = nil) ⇒ Grid::File
-1 제한을 가진 #find 를 대신 사용하세요. 버전 3.0 에서 제거될 예정입니다.
GridFS 에서 파일 을 찾습니다.
155 156 157 158 159 160 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 155 def find_one(선택기 = nil) file_info = 파일 컬렉션.찾기(선택기).first 반환 nil 하지 않는 한 file_info 청크 = chunks_collection.찾기(:files_id => file_info[:_id]).sort(:n => 1) 그리드::file.신규(청크.to_a, 옵션::매퍼.변환(file_info, 그리드::file::정보::지도 제작.반전)) end |
#insert_one(file) ⇒ BSON::ObjectId
대신 #upload_from_stream 또는 #open_upload_stream을 사용하세요. 버전 3.0 에서 제거될 예정입니다.
GridFS에 단일 파일을 삽입합니다.
175 176 177 178 179 180 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 175 def insert_one(파일) @indexes ||= ensure_indexes! chunks_collection.insert_many(파일.청크) 파일 컬렉션.insert_one(파일.정보) 파일.id end |
#open_download_stream(ID, options = nil) {|The| ... } ⇒ Stream::Read
ID 로 지정된 파일 을 다운로드할 수 있는 스트림 을 엽니다.
243 244 245 246 247 248 249 250 251 252 253 254 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 243 def open_download_stream(id, = nil) = Utils.shallow_symbolize_keys( || {}) read_stream(id, **).탭 do |스트림| 만약 block_given? 시작 yield 스트림 보장 스트림.닫기 end end end end |
#open_download_stream_by_name(filename, opts = {}) {|The| ... } ⇒ Stream::Read
애플리케이션 이 옵션의 파일 이름 및 수정본으로 지정된 저장된 파일 의 내용을 읽을 수 있는 스트림 을 엽니다.
수정본 번호는 다음과 같이 정의됩니다: 0 = 원래 저장된 파일 1 = 첫 번째 수정본 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 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 308 def open_download_stream_by_name(파일 이름, opts = {}, &차단) 수정본 = opts.가져오기(:revision, -1) 만약 수정본 < 0 건너뛰기 = 수정본.abs - 1 sort = { 'uploadDate' => mongo::Index::내림차순 } other 건너뛰기 = 수정본 sort = { 'uploadDate' => mongo::Index::오름차순 } end file_info_doc = 파일 컬렉션.찾기({ 파일 이름: 파일 이름} , sort: sort, 건너뛰기: 건너뛰기, limit: -1).first 하지 않는 한 file_info_doc 올리다 오류::FileNotFound.신규(파일 이름, :filename) 하지 않는 한 opts[:revision] 올리다 오류::InvalidFileRevision.신규(파일 이름, opts[:revision]) end open_download_stream(file_info_doc[:_id], file_info_doc: file_info_doc, &차단) end |
#open_upload_stream(filename, opts = {}) {|The| ... } ⇒ Stream::Write
파일 또는 블롭의 콘텐츠를 쓸 수 있는 GridFS에 대한 업로드 스트림을 엽니다.
389 390 391 392 393 394 395 396 397 398 399 400 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 389 def open_upload_stream(파일 이름, opts = {}) opts = Utils.shallow_symbolize_keys(opts) write_stream(파일 이름, **opts).탭 do |스트림| 만약 block_given? 시작 yield 스트림 보장 스트림.닫기 end end end end |
#접두사 ⇒ string
GridFS의 접두사 가져오기
190 191 192 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 190 def prefix @options[:fs_name] || @options[:bucket_name] || DEFAULT_ROOT end |
#read_preference ⇒ BSON::Document
이 메서드는 FSBucket 생성자가 :read 유형을 BSON ::Document가 아닌 해시로 지정하더라도 항상 BSON::Document 인스턴스 를 반환합니다.
읽기 설정을 가져옵니다.
460 461 462 463 464 465 466 467 468 469 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 460 def read_preference @read_preference ||= 시작 pref = [:read] || database.read_preference 만약 BSON::문서 === pref pref other 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 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 430 def upload_from_stream(파일 이름, io, opts = {}) open_upload_stream(파일 이름, opts) do |스트림| 시작 스트림.쓰기(io) # IOError 및 SystemCallError는 io. # Error::SocketError 및 Error::SocketTimeoutError는 # MongoDB에 쓰기. 구출 IOError, SystemCallError, 오류::SocketError, 오류::SocketTimeoutError 시작 스트림.중단 구출 오류::OperationFailure end 올리다 end end.file_id end |
#write_concern ⇒ Mongo::WriteConcern
쓰기 고려 (write concern) 를 가져옵니다.
479 480 481 482 483 484 485 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', 줄 479 def write_concern @write_concern ||= 만약 wco = @options[:write_concern] || @options[:write] writeConcern.get(wco) other database.write_concern end end |