private HttpResponse getS3ObjectResponse()

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;
    }