클래스: Mongo::Grid::File::Chunk

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb

개요

파일 데이터의 GridFS 청크에 대한 동작을 캡슐화합니다.

이후:

  • 2.0.0

상수 요약 접기

COLLECTION =

청크 컬렉션 의 이름입니다.

이후:

  • 2.0.0

'chunks'.동결
DEFAULT_SIZE =

데이터 청크의 기본 크기입니다.

이후:

  • 2.0.0

(255 * 1024).동결

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(문서) ⇒ 청크

새 청크 를 만듭니다.

예시:

청크를 생성합니다.

Chunk.new(document)

매개변수:

  • 문서 (BSON::Document)

    청크 를 생성할 문서 입니다.

이후:

  • 2.0.0



125
126
127
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 125

def 초기화(문서)
  @document = BSON::문서.신규(:_id => BSON::ObjectId.신규).merge(문서)
end

인스턴스 속성 세부 정보

#문서BSON::Document (읽기 전용)

청크에 대해 저장할 문서를 반환합니다.

반환합니다:

  • (BSON::Document)

    document 청크에 대해 저장할 문서입니다.

이후:

  • 2.0.0



39
40
41
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 39

def 문서
  @document
end

클래스 메서드 세부 정보

.어셈블(청크) ⇒ string

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

청크 배열을 가져와서 전체 원시 데이터 조각으로 다시 조립합니다.

예시:

청크를 조립합니다.

Chunk.assemble(chunks)

매개변수:

  • 청크 (Array<청크>)

    청크.

반환합니다:

  • (string)

    조립된 데이터입니다.

이후:

  • 2.0.0



159
160
161
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 159

def 조립(청크)
  청크.reduce(+''){ |데이터, 청크| 데이터 << 청크.데이터.데이터 }
end

.분할(io, file_info, offset = 0) ⇒ Array<Chunk>

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

제공된 데이터를 여러 청크로 분할합니다.

예시:

데이터를 청크로 분할합니다.

Chunks.split(data)

매개변수:

  • io (string, IO)

    원시 바이트입니다.

  • file_info (File::Info)

    파일 컬렉션 파일 doc.

  • 오프셋 (정수) (기본값: 0)

    오프셋입니다.

반환합니다:

  • (Array<청크>)

    데이터의 청크입니다.

이후:

  • 2.0.0



176
177
178
179
180
181
182
183
184
185
186
187
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 176

def split(io, file_info, 오프셋 = 0)
  io = StringIO.신규(io) 만약 io.is_a?(문자열)
  부품 = 열거자.신규 { |y| y << io.읽기(file_info.chunk_size) 까지 io.eof? }
  부품.map.with_index do |바이트, n|
    file_info.update_md5(바이트)
    청크.신규(
      데이터: BSON::바이너리.신규(바이트),
      파일 ID: file_info.id,
      n: n + 오프셋
    )
  end
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true, false

청크 동등성을 확인합니다.

예시:

청크 동등성을 확인합니다.

chunk == other

매개변수:

  • 기타 (객체)

    비교할 객체 입니다.

반환합니다:

  • (true, false)

    객체가 동일한 경우.

이후:

  • 2.0.0



51
52
53
54
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 51

def ==(기타)
  반환 거짓 하지 않는 한 기타.is_a?(청크)
  문서 == 기타.문서
end

#bson_typeInteger

청크 문서 의 BSON type을 가져옵니다.

예시:

BSON type을 가져옵니다.

chunk.bson_type

반환합니다:

  • (정수)

    BSON 유형입니다.

이후:

  • 2.0.0



64
65
66
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 64

def bson_type
  BSON::해시::BSON_TYPE
end

#dataBSON::Binary

청크 데이터를 가져옵니다.

예시:

청크 데이터를 가져옵니다.

chunk.data

반환합니다:

  • (BSON::Binary)

    청크 데이터입니다.

이후:

  • 2.0.0



76
77
78
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 76

def 데이터
  문서[:data]
end

# 파일 ID ⇒BSON ::ObjectId

파일 ID를 가져옵니다.

예시:

파일 ID를 가져옵니다.

chunk.files_id

반환합니다:

  • (BSON::ObjectId)

    파일 ID입니다.

이후:

  • 2.0.0



100
101
102
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 100

def 파일 ID
  문서[:files_id]
end

#IDBSON::ObjectId

청크 ID를 가져옵니다.

예시:

청크 ID를 가져옵니다.

chunk.id

반환합니다:

  • (BSON::ObjectId)

    청크 ID입니다.

이후:

  • 2.0.0



88
89
90
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 88

def id
  문서[:_id]
end

#n정수

청크 위치를 가져옵니다.

예시:

청크 위치를 가져옵니다.

chunk.n

반환합니다:

  • (정수)

    청크 위치입니다.

이후:

  • 2.0.0



112
113
114
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 112

def n
  문서[:n]
end

#to_bson(buffer = BSON::ByteBuffer.new, validation_keys = nil) ⇒ string

저장을 위해 청크를 BSON으로 변환합니다.

예시:

청크 를 BSON 으로 변환합니다.

chunk.to_bson

매개변수:

  • buffer (BSON::ByteBuffer) (기본값: BSON::ByteBuffer.new)

    추가할 인코딩된 BSON 버퍼입니다.

  • validation_keys (true, false) (기본값: nil)

    직렬화 시 키의 유효성을 검사할지 여부입니다. 이 옵션은 더 이상 사용되지 않으며, 버전 3.0 에서 제거됩니다.

반환합니다:

  • (string)

    원시 BSON 데이터.

이후:

  • 2.0.0



141
142
143
# 파일 'build/ruby-driver-v2.19/lib/mongo/grid/file/chunk.rb', 줄 141

def to_bson(buffer = BSON::ByteBuffer.신규, validation_keys = nil)
  문서.to_bson(buffer)
end