public class S3Handler
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.util.regex.Pattern |
BUCKET_ADJACENT_DOTS_DASHES_PATTERN |
static java.util.regex.Pattern |
BUCKET_INVALID_SUFFIX_PATTERN |
static java.util.regex.Pattern |
BUCKET_INVALIDATION_PREFIX_PATTERN |
static boolean |
BUCKET_NAMING_RESTRICTION_ENABLED |
static com.google.common.cache.Cache<java.lang.String,java.lang.Boolean> |
BUCKET_PATH_CACHE |
static int |
BUCKET_PATH_CACHE_SIZE |
static java.util.regex.Pattern |
BUCKET_PATH_PATTERN |
static java.util.regex.Pattern |
BUCKET_VALID_NAME_PATTERN |
AsyncUserAccessAuditLogWriter |
mAsyncAuditLogWriter |
static int |
MAX_HEADER_METADATA_SIZE |
static boolean |
MULTIPART_CLEANER_ENABLED |
static java.util.regex.Pattern |
OBJECT_PATH_PATTERN |
static int |
USE_POSITION_READ_SIZE |
| Constructor and Description |
|---|
S3Handler(java.lang.String bucket,
java.lang.String object,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
S3Handler Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
S3AuditContext |
createAuditContext(java.lang.String command,
java.lang.String user,
java.lang.String bucket,
java.lang.String object)
Creates a
S3AuditContext instance. |
static S3Handler |
createHandler(java.lang.String path,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Create a S3Handler based on the incoming Request.
|
void |
doAuthentication()
Do S3 request authentication.
|
void |
extractAMZHeaders()
Utility function to help extract x-amz- headers from request.
|
java.lang.String |
getBucket()
Get the bucket name of this request.
|
java.lang.String |
getHeader(java.lang.String headerName)
get specified HTTP header value of this request.
|
java.lang.String |
getHeaderOrDefault(java.lang.String headerName,
java.lang.String defaultHeaderValue)
get specified HTTP header with a default if not exist.
|
java.lang.String |
getHTTPVerb()
get HTTP verb of this request.
|
javax.servlet.ServletInputStream |
getInputStream()
retrieve inputstream from incoming request.
|
FileSystem |
getMetaFS()
Get system user FileSystem object.
|
java.lang.String |
getObject()
Get the object name of this request.
|
java.lang.String |
getQueryParameter(java.lang.String queryParam)
retrieve given query parameter value.
|
S3BaseTask |
getS3Task()
get S3Task of this S3Handler.
|
javax.servlet.ServletContext |
getServletContext()
get ServletContext from current http conversation.
|
javax.servlet.http.HttpServletRequest |
getServletRequest()
get HttpServletRequest of this request.
|
javax.servlet.http.HttpServletResponse |
getServletResponse()
get HttpServletResponse of this request.
|
com.google.common.base.Stopwatch |
getStopwatch()
Get Stopwatch object used for recording this request's latency.
|
java.lang.String |
getUser()
Get the user name of this request.
|
void |
init()
Initialize the S3Handler object in preparation for handling the request.
|
java.lang.String |
printCollection(java.lang.String prefix,
java.util.Collection<? extends java.lang.Object> collection)
Utility function to dump a collection into a string.
|
java.lang.String |
printMap(java.lang.String prefix,
java.util.Map<? extends java.lang.Object,? extends java.lang.Object> map)
Utility function to dump a map into a string.
|
static void |
processResponse(javax.servlet.http.HttpServletResponse servletResponse,
javax.ws.rs.core.Response response)
Process the response returned from S3Task core logic to write to downstream.
|
void |
rejectUnsupportedResources()
Reject unsupported request from the given subresources from request.
|
void |
setS3Task(S3BaseTask task)
set S3Task for this S3Handler.
|
void |
setStopwatch(com.google.common.base.Stopwatch stopwatch)
Set the Stopwatch object used for recording this request's latency.
|
public static final boolean BUCKET_NAMING_RESTRICTION_ENABLED
public static final int MAX_HEADER_METADATA_SIZE
public static final boolean MULTIPART_CLEANER_ENABLED
public static final java.util.regex.Pattern BUCKET_ADJACENT_DOTS_DASHES_PATTERN
public static final java.util.regex.Pattern BUCKET_INVALIDATION_PREFIX_PATTERN
public static final java.util.regex.Pattern BUCKET_INVALID_SUFFIX_PATTERN
public static final java.util.regex.Pattern BUCKET_VALID_NAME_PATTERN
public static final java.util.regex.Pattern BUCKET_PATH_PATTERN
public static final java.util.regex.Pattern OBJECT_PATH_PATTERN
public static final int BUCKET_PATH_CACHE_SIZE
public static final com.google.common.cache.Cache<java.lang.String,java.lang.Boolean> BUCKET_PATH_CACHE
public static final int USE_POSITION_READ_SIZE
public AsyncUserAccessAuditLogWriter mAsyncAuditLogWriter
public S3Handler(java.lang.String bucket,
java.lang.String object,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
bucket - object - request - response - public static S3Handler createHandler(java.lang.String path, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.lang.Exception
path - request - response - java.lang.Exceptionpublic static void processResponse(javax.servlet.http.HttpServletResponse servletResponse,
javax.ws.rs.core.Response response)
throws java.io.IOException
servletResponse - response - java.io.IOExceptionpublic void init()
throws java.lang.Exception
java.lang.Exceptionpublic S3BaseTask getS3Task()
public void setS3Task(S3BaseTask task)
task - public java.lang.String getHTTPVerb()
public java.lang.String getHeader(java.lang.String headerName)
headerName - public java.lang.String getHeaderOrDefault(java.lang.String headerName,
java.lang.String defaultHeaderValue)
headerName - defaultHeaderValue - public javax.servlet.http.HttpServletResponse getServletResponse()
public javax.servlet.http.HttpServletRequest getServletRequest()
public javax.servlet.ServletContext getServletContext()
public java.lang.String getQueryParameter(java.lang.String queryParam)
queryParam - public javax.servlet.ServletInputStream getInputStream()
throws java.io.IOException
java.io.IOExceptionpublic S3AuditContext createAuditContext(java.lang.String command, java.lang.String user, @Nullable java.lang.String bucket, @Nullable java.lang.String object)
S3AuditContext instance.command - the command to be logged by this S3AuditContextuser - user namebucket - bucket nameobject - object nameS3AuditContext instancepublic java.lang.String printCollection(java.lang.String prefix,
java.util.Collection<? extends java.lang.Object> collection)
prefix - collection - public java.lang.String printMap(java.lang.String prefix,
java.util.Map<? extends java.lang.Object,? extends java.lang.Object> map)
prefix - map - public void extractAMZHeaders()
public void rejectUnsupportedResources()
throws S3Exception
S3Exceptionpublic void doAuthentication()
throws java.lang.Exception
java.lang.Exceptionpublic java.lang.String getUser()
public java.lang.String getBucket()
public java.lang.String getObject()
public FileSystem getMetaFS()
public com.google.common.base.Stopwatch getStopwatch()
public void setStopwatch(com.google.common.base.Stopwatch stopwatch)
stopwatch - Copyright © 2024. All Rights Reserved.