public class S3ObjectLambdaEvent extends Object
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.S3ObjectLambdaEvent;
import org.apache.http.client.fluent.Request;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.WriteGetObjectResponseRequest;
import java.io.IOException;
import static software.amazon.awssdk.core.sync.RequestBody.fromString;
public class S3ObjectRequestHandler {
private static final S3Client s3Client = S3Client.create();
public void handleRequest(S3ObjectLambdaEvent event, Context context) throws IOException {
String s3Body = Request.Get(event.inputS3Url()).execute().returnContent().asString();
String responseBody = s3Body.toUpperCase();
WriteGetObjectResponseRequest request = WriteGetObjectResponseRequest.builder()
.requestRoute(event.outputRoute())
.requestToken(event.outputToken())
.build();
s3Client.writeGetObjectResponse(request, fromString(responseBody));
}
}
Modifier and Type | Class and Description |
---|---|
static class |
S3ObjectLambdaEvent.Configuration |
static class |
S3ObjectLambdaEvent.GetObjectContext |
static class |
S3ObjectLambdaEvent.UserIdentity |
static class |
S3ObjectLambdaEvent.UserRequest |
Constructor and Description |
---|
S3ObjectLambdaEvent() |
Modifier and Type | Method and Description |
---|---|
String |
inputS3Url()
A pre-signed URL that can be used to fetch the original object from Amazon S3.
|
String |
outputRoute()
A routing token that is added to the S3 Object Lambda URL when the Lambda function
calls the S3 API WriteGetObjectResponse.
|
String |
outputToken()
An opaque token used by S3 Object Lambda to match the WriteGetObjectResponse call
with the original caller.
|
public String inputS3Url()
public String outputRoute()
public String outputToken()
Copyright © 2021. All rights reserved.