Package alluxio.proxy.s3
Class S3RestServiceHandler
- java.lang.Object
-
- alluxio.proxy.s3.S3RestServiceHandler
-
@NotThreadSafe @Path("s3") @Produces("application/xml") @Consumes({"text/xml","application/xml"}) public final class S3RestServiceHandler extends java.lang.ObjectThis class is a REST handler for Amazon S3 API.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringBUCKET_PARAMstatic java.lang.StringBUCKET_SEPARATORBucket must be a directory directly under a mount point.static java.lang.StringOBJECT_PARAMstatic java.lang.StringSERVICE_PREFIX
-
Constructor Summary
Constructors Constructor Description S3RestServiceHandler(javax.servlet.ServletContext context)Constructs a newS3RestServiceHandler.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.ws.rs.core.ResponsecreateBucket(java.lang.String authorization, java.lang.String bucket)javax.ws.rs.core.ResponsecreateObjectOrUploadPart(java.lang.String authorization, java.lang.String contentMD5, java.lang.String copySource, java.lang.String bucket, java.lang.String object, java.lang.Integer partNumber, java.lang.Long uploadId, java.io.InputStream is)javax.ws.rs.core.ResponsedeleteBucket(java.lang.String authorization, java.lang.String bucket)javax.ws.rs.core.ResponsedeleteObjectOrAbortMultipartUpload(java.lang.String authorization, java.lang.String bucket, java.lang.String object, java.lang.Long uploadId)javax.ws.rs.core.ResponsegetBucket(java.lang.String authorization, java.lang.String bucket, java.lang.String markerParam, java.lang.String prefixParam, java.lang.String delimiterParam, java.lang.String encodingTypeParam, int maxKeysParam)javax.ws.rs.core.ResponsegetObjectMetadata(java.lang.String authorization, java.lang.String bucket, java.lang.String object)javax.ws.rs.core.ResponsegetObjectOrListParts(java.lang.String authorization, java.lang.String range, java.lang.String bucket, java.lang.String object, java.lang.Long uploadId)static java.lang.StringgetUserFromAuthorization(java.lang.String authorization)Gets the user from the authorization header string for AWS Signature Version 4.javax.ws.rs.core.ResponseinitiateOrCompleteMultipartUpload(java.lang.String authorization, java.lang.String bucket, java.lang.String object, java.lang.String uploads, java.lang.Long uploadId)javax.ws.rs.core.ResponselistAllMyBuckets(java.lang.String authorization)Lists all buckets owned by you.
-
-
-
Field Detail
-
SERVICE_PREFIX
public static final java.lang.String SERVICE_PREFIX
- See Also:
- Constant Field Values
-
BUCKET_SEPARATOR
public static final java.lang.String BUCKET_SEPARATOR
Bucket must be a directory directly under a mount point. If it is under a non-root mount point, the bucket separator must be used as the separator in the bucket name, for example, mount:point:bucket represents Alluxio directory /mount/point/bucket.- See Also:
- Constant Field Values
-
BUCKET_PARAM
public static final java.lang.String BUCKET_PARAM
- See Also:
- Constant Field Values
-
OBJECT_PARAM
public static final java.lang.String OBJECT_PARAM
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
S3RestServiceHandler
public S3RestServiceHandler(@Context javax.servlet.ServletContext context)Constructs a newS3RestServiceHandler.- Parameters:
context- context for the servlet
-
-
Method Detail
-
getUserFromAuthorization
public static java.lang.String getUserFromAuthorization(java.lang.String authorization)
Gets the user from the authorization header string for AWS Signature Version 4.- Parameters:
authorization- the authorization header string- Returns:
- the user
-
listAllMyBuckets
@GET public javax.ws.rs.core.Response listAllMyBuckets(@HeaderParam("Authorization") java.lang.String authorization)Lists all buckets owned by you.- Parameters:
authorization- header parameter authorization- Returns:
- the response object
-
getBucket
@GET @Path("{bucket}/") public javax.ws.rs.core.Response getBucket(@HeaderParam("Authorization") java.lang.String authorization, @PathParam("bucket") java.lang.String bucket, @QueryParam("marker") java.lang.String markerParam, @QueryParam("prefix") java.lang.String prefixParam, @QueryParam("delimiter") java.lang.String delimiterParam, @QueryParam("encoding-type") java.lang.String encodingTypeParam, @QueryParam("max-keys") int maxKeysParam)
-
createBucket
@PUT @Path("{bucket}/") public javax.ws.rs.core.Response createBucket(@HeaderParam("Authorization") java.lang.String authorization, @PathParam("bucket") java.lang.String bucket)
-
deleteBucket
@DELETE @Path("{bucket}/") public javax.ws.rs.core.Response deleteBucket(@HeaderParam("Authorization") java.lang.String authorization, @PathParam("bucket") java.lang.String bucket)
-
createObjectOrUploadPart
@PUT @Path("{bucket}/{object:.+}") @Consumes("*/*") public javax.ws.rs.core.Response createObjectOrUploadPart(@HeaderParam("Authorization") java.lang.String authorization, @HeaderParam("Content-MD5") java.lang.String contentMD5, @HeaderParam("x-amz-copy-source") java.lang.String copySource, @PathParam("bucket") java.lang.String bucket, @PathParam("object") java.lang.String object, @QueryParam("partNumber") java.lang.Integer partNumber, @QueryParam("uploadId") java.lang.Long uploadId, java.io.InputStream is)
-
initiateOrCompleteMultipartUpload
@POST @Path("{bucket}/{object:.+}") @Consumes({"application/octet-stream","application/xml"}) public javax.ws.rs.core.Response initiateOrCompleteMultipartUpload(@HeaderParam("Authorization") java.lang.String authorization, @PathParam("bucket") java.lang.String bucket, @PathParam("object") java.lang.String object, @QueryParam("uploads") java.lang.String uploads, @QueryParam("uploadId") java.lang.Long uploadId)
-
getObjectMetadata
@HEAD @Path("{bucket}/{object:.+}") public javax.ws.rs.core.Response getObjectMetadata(@HeaderParam("Authorization") java.lang.String authorization, @PathParam("bucket") java.lang.String bucket, @PathParam("object") java.lang.String object)
-
getObjectOrListParts
@GET @Path("{bucket}/{object:.+}") @Produces({"application/xml","application/octet-stream"}) public javax.ws.rs.core.Response getObjectOrListParts(@HeaderParam("Authorization") java.lang.String authorization, @HeaderParam("Range") java.lang.String range, @PathParam("bucket") java.lang.String bucket, @PathParam("object") java.lang.String object, @QueryParam("uploadId") java.lang.Long uploadId)
-
deleteObjectOrAbortMultipartUpload
@DELETE @Path("{bucket}/{object:.+}") public javax.ws.rs.core.Response deleteObjectOrAbortMultipartUpload(@HeaderParam("Authorization") java.lang.String authorization, @PathParam("bucket") java.lang.String bucket, @PathParam("object") java.lang.String object, @QueryParam("uploadId") java.lang.Long uploadId)
-
-