Я пытаюсь прочитать большой AWS S3 сжатый объект (gz). Я не хочу читать весь объект, хочу читать его по частям, чтобы я мог обрабатывать несжатые данные параллельно. читая его с помощью GetObjectRequest с заголовком «Range», где я устанавливаю диапазон байтов. Однако, когда я даю диапазон байтов между (100 200), он терпит неудачу с "Не в формате GZIP" Причина отказа в том, что запрос AWS возвращает поток, однако, когда я анализирую его до GZIPInputStream, он терпит неудачу как "GZIPInputStream" ожидает, что первый байт (GZIP_MAGI C = 0x8b1f) подтвердит, что это gzip, которого нет в потоке.
GetObjectRequest rangeObjectRequest = new GetObjectRequest(<<Bucket>>, <<Key>>).withRange(100, 200);
S3Object object = s3Client.getObject(rangeObjectRequest);
S3ObjectInputStream rawData = object.getObjectContent();
InputStream data = new GZIPInputStream(rawData);
Может ли кто-нибудь указать правильный подход?