클래스: Mongo::Grid::FSBucket::Stream::Read
- 상속:
-
객체
- 객체
- Mongo::Grid::FSBucket::Stream::Read
- 다음을 포함합니다.
- Enumerable
- 다음에 정의됨:
- lib/ Mongo/grid/ 스트림/read.rb
개요
FSBucket에서 파일을 읽는 스트림입니다.
인스턴스 속성 요약 접기
-
#file_id ⇒ BSON::ObjectId, Object
읽기 전용
File_id 읽고 있는 파일의 ID입니다.
-
#fs ⇒ FSBucket
읽기 전용
Fs 이 스트림이 읽는 fs 버킷입니다.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 스트림 옵션입니다.
인스턴스 메서드 요약 접기
-
#닫기 ⇒ BSON::ObjectId, Object
읽기 스트림을 닫습니다.
-
#닫았나요? ⇒ 참, 거짓
스트림이 닫혀 있나요?
-
#각 {|Each| ... } ⇒ 열거자
FSBucket에서 스트리밍된 청크 데이터를 반복합니다.
-
#file_info ⇒ File::Info
읽고 있는 파일에 대한 파일 컬렉션 파일 정보 문서를 가져옵니다.
-
#initialize(fs, options) ⇒ 읽기
생성자
FSBucket에서 파일을 읽기 위한 스트림을 만듭니다.
-
#읽기 ⇒ string
모든 파일 데이터를 읽습니다.
-
#read_preference ⇒ BSON::Document
읽기 설정을 가져옵니다.
생성자 세부 정보
#initialize(fs, options) ⇒ 읽기
FSBucket에서 파일을 읽기 위한 스트림을 만듭니다.
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 56 def 초기화(fs, ) @fs = fs @options = .dup @file_id = @options.삭제(:file_id) @options.동결 @open = true @timeout_holder = CsotTimeoutHolder.신규( operation_timeout: { operation_timeout_ms: [:timeout_ms], inherited_timeout_ms: fs.database.timeout_ms } ) end |
인스턴스 속성 세부 정보
#file_id ⇒ BSON::ObjectId, Object (readonly)
반환값 file_id 읽고 있는 파일 의 ID입니다.
42 43 44 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 42 def file_id @file_id end |
#fs ⇒ FSBucket (읽기 전용)
반환값 fs 이 스트림 이 읽는 fs 버킷입니다.
32 33 34 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 32 def fs @fs end |
#options ⇒ 해시 (읽기 전용)
반환값 옵션 스트림 옵션입니다.
37 38 39 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 37 def @options end |
인스턴스 메서드 세부 정보
#닫기 ⇒ BSON::ObjectId, 객체
읽기 스트림을 닫습니다.
스트림이 이미 닫힌 경우 이 메서드는 아무 작업도 수행하지 않습니다.
131 132 133 134 135 136 137 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 131 def 닫기 만약 @open 보기.close_query @open = 거짓 end file_id end |
#닫았나요? ⇒ true, false
스트림이 닫혀 있나요?
147 148 149 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 147 def 닫힘? !@open end |
#각 {|Each| ... } ⇒ 열거자
FSBucket에서 스트리밍된 청크 데이터를 반복합니다.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 84 def 각 sure_readable! 정보 = file_info num_chunks = (정보.분량 + 정보.chunk_size - 1) / 정보.chunk_size num_read = 0 만약 block_given? 보기.each_with_index.reduce(0) do |length_read, (doc, index)| 청크 = 그리드::file::청크.신규(doc) 유효성을 검사합니다!(index, num_chunks, 청크, length_read) 데이터 = 청크.데이터.데이터 yield 데이터 num_read += 1 length_read += 데이터.size end.탭 do 만약 num_read < num_chunks 올리다 오류::MissingFileChunk.신규(num_chunks, num_read) end end other 보기.to_enum end end |
#file_info ⇒ File::Info
참고:
파일 정보는 스트림 에 캐시됩니다. 이후에 file_info를 호출하면 첫 번째 호출에서 반환된 것과 동일한 정보가 반환되며 데이터베이스 를 다시 쿼리 하지 않습니다.
읽고 있는 파일에 대한 파일 컬렉션 파일 정보 문서를 가져옵니다.
185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 185 def file_info @file_info ||= 시작 doc = [:file_info_doc] || fs.파일 컬렉션.찾기( { _id: file_id }, { timeout_ms: @timeout_holder.잔여 시간 초과_ms! } ).first 만약 doc file::정보.신규(옵션::매퍼.변환(doc, file::정보::지도 제작.반전)) other nil end end end |
#읽기 ⇒ string
모든 파일 데이터를 읽습니다.
117 118 119 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 117 def 읽기 to_a.가입 end |
#read_preference ⇒ BSON::Document
참고:
이 메서드는 생성자가 :read 유형을 BSON::Document가 아닌 해시로 지정하더라도 항상 BSON::Document 인스턴스를 반환합니다.
읽기 설정을 가져옵니다.
164 165 166 167 168 169 170 171 172 173 |
# 파일 'lib/ Mongo/grid/ 스트림/read.rb', 줄 164 def read_preference @read_preference ||= 시작 pref = [:read] || fs.read_preference 만약 BSON::문서 === pref pref other BSON::문서.신규(pref) end end end |