func()

in pkg/stream/s3/s3_reader.go [168:193]


func (r *s3Reader) Seek(offset int64, whence int) (newOffset int64, err error) {
	oldPos := r.offset

	switch whence {
	default:
		return 0, fmt.Errorf("Seek: invalid whence %v", whence)
	case io.SeekStart:
		r.offset = offset
	case io.SeekCurrent:
		r.offset += offset
	case io.SeekEnd:
		r.offset = r.ContentLength
	}

	if r.offset > r.ContentLength {
		r.offset = r.ContentLength
	}

	//Close the socket when seeking
	//Special case: Dont close if the position hasn't changed
	if oldPos != r.offset {
		r.closeS3Socket()
	}

	return r.offset, nil
}