클래스: Mongo::Grid::FSBucket::Stream::Read

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
Enumerable
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb

개요

FSBucket에서 파일을 읽는 스트림입니다.

이후:

  • 2.1.0

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(fs, options) ⇒ 읽기

FSBucket에서 파일을 읽기 위한 스트림을 만듭니다.

예시:

스트림을 생성합니다.

Stream::Read.new(fs, options)

매개변수:

  • fs (FSBucket)

    GridFS 버킷 객체입니다.

  • 옵션 (해시)

    읽기 스트림 옵션입니다.

옵션 해시(options):

  • :file_info_doc (BSON::Document)

    내부 드라이버 전용입니다. 파일 정보로 사용할 BSON 문서입니다.

이후:

  • 2.1.0



56
57
58
59
60
61
62
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 56

def 초기화(fs, 옵션)
  @fs = fs
  @options = 옵션.dup
  @file_id = @options.삭제(:file_id)
  @options.동결
  @open = true
end

인스턴스 속성 세부 정보

#file_idBSON::ObjectId, Object (readonly)

반환값 file_id 읽고 있는 파일 의 ID입니다.

반환합니다:

  • (BSON::ObjectId, Object)

    file_id 읽고 있는 파일의 ID입니다.

이후:

  • 2.1.0



42
43
44
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 42

def file_id
  @file_id
end

#fsFSBucket (읽기 전용)

반환값 fs 이 스트림 이 읽는 fs 버킷입니다.

반환합니다:

  • (FSBucket)

    fs 이 스트림이 읽는 fs 버킷입니다.

이후:

  • 2.1.0



32
33
34
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 32

def fs
  @fs
end

#options해시 (읽기 전용)

반환값 옵션 스트림 옵션입니다.

반환합니다:

  • (해시)

    options 스트림 옵션입니다.

이후:

  • 2.1.0



37
38
39
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 37

def 옵션
  @options
end

인스턴스 메서드 세부 정보

#닫기BSON::ObjectId, 객체

읽기 스트림을 닫습니다.

스트림이 이미 닫힌 경우 이 메서드는 아무 작업도 수행하지 않습니다.

예시:

스트림을 닫습니다.

stream.close

반환합니다:

  • (BSON::ObjectId, Object)

    파일 ID입니다.

이후:

  • 2.1.0



125
126
127
128
129
130
131
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 125

def 닫기
  만약 @open
    보기.close_query
    @open = 거짓
  end
  file_id
end

#닫았나요?true, false

스트림이 닫혀 있나요?

예시:

스트림이 닫혀 있는지 여부입니다.

stream.closed?

반환합니다:

  • (true, false)

    스트림이 닫혔는지 여부입니다.

이후:

  • 2.1.0



141
142
143
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 141

def 닫힘?
  !@open
end

# {|Each| ... } ⇒ 열거자

FSBucket에서 스트리밍된 청크 데이터를 반복합니다.

예시:

청크 데이터를 반복합니다.

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
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 78

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_infoFile::Info

참고:

파일 정보는 스트림 에 캐시됩니다. 이후에 file_info를 호출하면 첫 번째 호출에서 반환된 것과 동일한 정보가 반환되며 데이터베이스 를 다시 쿼리 하지 않습니다.

읽고 있는 파일에 대한 파일 컬렉션 파일 정보 문서를 가져옵니다.

반환합니다:

  • (File::Info)

    파일 정보 객체 입니다.

이후:

  • 2.1.0



179
180
181
182
183
184
185
186
187
188
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 179

def file_info
  @file_info ||= 시작
    doc = 옵션[:file_info_doc] || fs.파일 컬렉션.찾기(_id: file_id).first
    만약 doc
      file::정보.신규(옵션::매퍼.변환(doc, file::정보::지도 제작.반전))
    other
      nil
    end
  end
end

#읽기string

모든 파일 데이터를 읽습니다.

예시:

파일 데이터를 읽습니다.

stream.read

반환합니다:

  • (string)

    파일 데이터.

다음을 발생시킵니다.

이후:

  • 2.1.0



111
112
113
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 111

def 읽기
  to_a.가입
end

#read_preferenceBSON::Document

참고:

이 메서드는 생성자가 :read 유형을 BSON::Document가 아닌 해시로 지정하더라도 항상 BSON::Document 인스턴스를 반환합니다.

읽기 설정을 가져옵니다.

반환합니다:

  • (BSON::Document)

    읽기 설정. 문서에는 다음과 같은 필드가 있을 수 있습니다.

    • : 모드 - 기호로 지정된 읽기 설정 (read preference) . 유효한 값은 프라이머리, :primary_preferred, : 세컨더리, :secondary_preferred:nearest 입니다.

    • :tag_sets - 해시 배열입니다.

    • :local_threshold.

이후:

  • 2.1.0



158
159
160
161
162
163
164
165
166
167
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/grid/ 스트림/read.rb', 줄 158

def read_preference
  @read_preference ||= 시작
    pref = 옵션[:read] || fs.read_preference
    만약 BSON::문서 === pref
      pref
    other
      BSON::문서.신규(pref)
    end
  end
end