in function/java11/src/main/java/com/amazon/s3objectlambda/request/GetObjectHandler.java [80:103]
private HttpResponse<InputStream> getS3ObjectResponse(S3ObjectLambdaEvent event,
S3ObjectLambdaEvent.UserRequest userRequest)
throws URISyntaxException, IOException, InterruptedException {
var httpClient = HttpClient.newBuilder().build();
var httpRequestBuilder = HttpRequest.newBuilder(new URI(event.inputS3Url()));
var userRequestHeaders = userRequest.getHeaders();
var headersToBePresigned = Arrays.asList(
"x-amz-expected-bucket-owner",
"If-Match",
"If-Modified-Since",
"If-None-Match",
"If-Unmodified-Since");
for (var userRequestHeader : userRequestHeaders.entrySet()) {
if (headersToBePresigned.contains(userRequestHeader.getKey())) {
httpRequestBuilder.header(userRequestHeader.getKey(), userRequestHeader.getValue());
}
}
var presignedResponse = httpClient.send(
httpRequestBuilder.GET().build(),
HttpResponse.BodyHandlers.ofInputStream());
return presignedResponse;
}