Skip to content

Commit 0bf703c

Browse files
committed
Respect range parameter for getObject in presign aware S3 clients
If present, the range parameter from GetObjectRequest should be added to PresignedUrlDownloadRequest, so that the client gets the expected bytes.
1 parent 15ccf77 commit 0bf703c

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

trino-aws-proxy-spark3/src/main/java/io/trino/aws/proxy/spark3/PresignAwareAmazonS3.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,8 @@ public S3Object getObject(GetObjectRequest getObjectRequest)
626626
return getPresignedUrl("GET", getObjectRequest.getBucketName(), getObjectRequest.getKey())
627627
.map(presigned -> {
628628
PresignedUrlDownloadRequest presignedUrlDownloadRequest = new PresignedUrlDownloadRequest(presigned.url);
629+
Optional.ofNullable(getObjectRequest.getRange())
630+
.ifPresent(range -> presignedUrlDownloadRequest.withRange(range[0], range[1]));
629631
return delegate.download(presignedUrlDownloadRequest).getS3Object();
630632
})
631633
.orElseGet(() -> delegate.getObject(getObjectRequest));
@@ -638,6 +640,8 @@ public ObjectMetadata getObject(GetObjectRequest getObjectRequest, File destinat
638640
return getPresignedUrl("GET", getObjectRequest.getBucketName(), getObjectRequest.getKey())
639641
.map(presigned -> {
640642
PresignedUrlDownloadRequest presignedUrlDownloadRequest = new PresignedUrlDownloadRequest(presigned.url);
643+
Optional.ofNullable(getObjectRequest.getRange())
644+
.ifPresent(range -> presignedUrlDownloadRequest.withRange(range[0], range[1]));
641645
delegate.download(presignedUrlDownloadRequest, destinationFile);
642646
return presigned.objectMetadata;
643647
})

0 commit comments

Comments
 (0)