Class ObjectEndpoint

java.lang.Object
org.apache.hadoop.ozone.s3.endpoint.EndpointBase
org.apache.hadoop.ozone.s3.endpoint.ObjectEndpoint
All Implemented Interfaces:
org.apache.hadoop.ozone.audit.Auditor

@Path("/{bucket}/{path:.+}") public class ObjectEndpoint extends EndpointBase
Key level rest endpoints.
  • Constructor Details

    • ObjectEndpoint

      public ObjectEndpoint()
  • Method Details

    • init

      @PostConstruct public void init()
      Specified by:
      init in class EndpointBase
    • put

      @PUT public javax.ws.rs.core.Response put(@PathParam("bucket") String bucketName, @PathParam("path") String keyPath, @HeaderParam("Content-Length") long length, @QueryParam("partNumber") int partNumber, @QueryParam("uploadId") @DefaultValue("") String uploadID, @QueryParam("tagging") String taggingMarker, @QueryParam("acl") String aclMarker, InputStream body) throws IOException, OS3Exception
      Rest endpoint to upload object to a bucket.

      See: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html for more details.

      Throws:
      IOException
      OS3Exception
    • get

      @GET public javax.ws.rs.core.Response get(@PathParam("bucket") String bucketName, @PathParam("path") String keyPath, @QueryParam("partNumber") int partNumber, @QueryParam("uploadId") String uploadId, @QueryParam("max-parts") @DefaultValue("1000") int maxParts, @QueryParam("part-number-marker") String partNumberMarker, @QueryParam("tagging") String taggingMarker) throws IOException, OS3Exception
      Rest endpoint to download object from a bucket, if query param uploadId is specified, request for list parts of a multipart upload key with specific uploadId.

      See: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListParts.html for more details.

      Throws:
      IOException
      OS3Exception
    • head

      @HEAD public javax.ws.rs.core.Response head(@PathParam("bucket") String bucketName, @PathParam("path") String keyPath) throws IOException, OS3Exception
      Rest endpoint to check existence of an object in a bucket.

      See: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html for more details.

      Throws:
      IOException
      OS3Exception
    • delete

      @DELETE public javax.ws.rs.core.Response delete(@PathParam("bucket") String bucketName, @PathParam("path") String keyPath, @QueryParam("uploadId") @DefaultValue("") String uploadId, @QueryParam("tagging") String taggingMarker) throws IOException, OS3Exception
      Delete a specific object from a bucket, if query param uploadId is specified, this request is for abort multipart upload.

      See: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadAbort.html for more details.

      Throws:
      IOException
      OS3Exception
    • initializeMultipartUpload

      @POST @Produces("application/xml") @Consumes("ozone/mpu") public javax.ws.rs.core.Response initializeMultipartUpload(@PathParam("bucket") String bucket, @PathParam("path") String key) throws IOException, OS3Exception
      Initialize MultiPartUpload request.

      Note: the specific content type is set by the HeaderPreprocessor.

      Throws:
      IOException
      OS3Exception
    • completeMultipartUpload

      @POST @Produces("application/xml") public javax.ws.rs.core.Response completeMultipartUpload(@PathParam("bucket") String bucket, @PathParam("path") String key, @QueryParam("uploadId") @DefaultValue("") String uploadID, CompleteMultipartUploadRequest multipartUploadRequest) throws IOException, OS3Exception
      Complete a multipart upload.
      Throws:
      IOException
      OS3Exception
    • setHeaders

      public void setHeaders(javax.ws.rs.core.HttpHeaders headers)
    • setContext

      public void setContext(javax.ws.rs.container.ContainerRequestContext context)
    • parseSourceHeader

      public static org.apache.commons.lang3.tuple.Pair<String,String> parseSourceHeader(String copyHeader) throws OS3Exception
      Parse the key and bucket name from copy header.
      Throws:
      OS3Exception
    • checkCopySourceModificationTime

      public static boolean checkCopySourceModificationTime(Long lastModificationTime, String copySourceIfModifiedSinceStr, String copySourceIfUnmodifiedSinceStr)
    • setOzoneConfiguration

      public void setOzoneConfiguration(org.apache.hadoop.hdds.conf.OzoneConfiguration config)
    • isDatastreamEnabled

      public boolean isDatastreamEnabled()
    • getMessageDigestInstance

      public MessageDigest getMessageDigestInstance()