Я пытаюсь загрузить диапазон байтов из Google Cloud Storage , используя их Java SDK .
Я могу загрузить весь файл, как этот.
Storage mStorage; // initialized and working
Blob blob = mStorage.get(pBucketName, pSource);
try (ReadChannel reader = mStorage.reader(blob.getBlobId())) {
// read bytes from read channel
}
Если я хочу, я могу ReadChannel#seek(long)
, пока не достигну желаемого начального байта, и загрузить диапазон с этой точки, но это кажется неэффективным (хотя я точно не знаю, что происходит в реализации.)
В идеале я хотел бы указать заголовок Range: bytes=start-end
в виде , показанный в API REST Google Cloud Storage , но я не могу понять, как установить заголовок в Java.
Как указать диапазон байтов в вызове get Java SDK Storage или указать заголовок, чтобы я мог эффективно загрузить нужный диапазон байтов?