in oss2/utils.py [0:0]
def read(self, amt=None):
offset_start = self.offset
if offset_start < self.discard and amt and self.cipher_callback:
amt += self.discard
content = self.fileobj.read(amt)
if not content:
self.read_all = True
_invoke_progress_callback(self.progress_callback, self.offset, None)
else:
_invoke_progress_callback(self.progress_callback, self.offset, None)
self.offset += len(content)
real_discard = 0
if offset_start < self.discard:
if len(content) <= self.discard:
real_discard = len(content)
else:
real_discard = self.discard
_invoke_crc_callback(self.crc_callback, content, real_discard)
content = _invoke_cipher_callback(self.cipher_callback, content, real_discard)
self.discard -= real_discard
return content