Я пытаюсь прочитать N байтов из моего файла в AWS S3 bucket и записать его в буфер, однако, когда я пытаюсь это сделать, возвращаемое количество байтов не N, но намного меньше и после многократного вызова это отличается.
Что я делаю, это:
public int readData(byte[] data, int doff, long offset, int length, String bucketName, String fileName) throws IOException {
GetObjectRequest rangeObjectRequest = new GetObjectRequest(bucketName, fileName)
.withRange(offset, length);
S3Object objectPortion = S3_CLIENT.getObject(rangeObjectRequest);
return objectPortion.getObjectContent().read(data, doff, length);
}
, когда offset = 0
и length = 32752
objectPortion.getObjectContent().read(data, doff, length);
возвращает 16360
в то время как data
размер составляет 32820, что достаточно для всех данных, которые я хочу.
Почему это происходит? Почему он не возвращает все данные?
Размер файла, который я пытаюсь загрузить, составляет около 69 КБ