Interface SignedUrlHandler

  • All Known Implementing Classes:
    RestS3Service, S3Service

    public interface SignedUrlHandler
    An interface implemented by JetS3t services or utilities that can perform operations on objects in S3 using only signed URLs - that is, without any knowledge of the user's AWS credentials.

    Implementation classes need no knowledge of S3 as such, but merely have to be able to perform standard HTTP requests for PUT, GET, HEAD and DELETE operation using signed URLs.

    The RestS3Service implements this interface using the HttpClient library.

    Author:
    James Murty
    • Method Detail

      • putObjectWithSignedUrl

        S3Object putObjectWithSignedUrl​(String signedPutUrl,
                                        S3Object object)
                                 throws ServiceException
        Puts an object using a pre-signed PUT URL generated for that object. This method is an implementation of the interface SignedUrlHandler.

        This operation does not required any S3 functionality as it merely uploads the object by performing a standard HTTP PUT using the signed URL.

        Parameters:
        signedPutUrl - a signed PUT URL generated.
        object - the object to upload, which must correspond to the object for which the URL was signed. The object must have the correct content length set, and to apply a non-standard ACL policy only the REST canned ACLs can be used (eg AccessControlList.REST_CANNED_PUBLIC_READ_WRITE).
        Returns:
        the S3Object put to S3. The S3Object returned will be identical to the object provided, except that the data input stream (if any) will have been consumed.
        Throws:
        ServiceException
      • deleteObjectWithSignedUrl

        void deleteObjectWithSignedUrl​(String signedDeleteUrl)
                                throws ServiceException
        Deletes an object using a pre-signed DELETE URL generated for that object. This method is an implementation of the interface SignedUrlHandler.

        This operation does not required any S3 functionality as it merely deletes the object by performing a standard HTTP DELETE using the signed URL.

        Parameters:
        signedDeleteUrl - a signed DELETE URL.
        Throws:
        ServiceException
      • getObjectWithSignedUrl

        S3Object getObjectWithSignedUrl​(String signedGetUrl)
                                 throws ServiceException
        Gets an object using a pre-signed GET URL generated for that object. This method is an implementation of the interface SignedUrlHandler.

        This operation does not required any S3 functionality as it merely uploads the object by performing a standard HTTP GET using the signed URL.

        Parameters:
        signedGetUrl - a signed GET URL.
        Returns:
        the S3Object in S3 including all metadata and the object's data input stream.
        Throws:
        ServiceException
      • getObjectDetailsWithSignedUrl

        S3Object getObjectDetailsWithSignedUrl​(String signedHeadUrl)
                                        throws ServiceException
        Gets an object's details using a pre-signed HEAD URL generated for that object. This method is an implementation of the interface SignedUrlHandler.

        This operation does not required any S3 functionality as it merely uploads the object by performing a standard HTTP HEAD using the signed URL.

        Parameters:
        signedHeadUrl - a signed HEAD URL.
        Returns:
        the S3Object in S3 including all metadata, but without the object's data input stream.
        Throws:
        ServiceException
      • getObjectAclWithSignedUrl

        AccessControlList getObjectAclWithSignedUrl​(String signedAclUrl)
                                             throws ServiceException
        Gets an object's ACL details using a pre-signed GET URL generated for that object. This method is an implementation of the interface SignedUrlHandler.
        Parameters:
        signedAclUrl - a signed URL.
        Returns:
        the AccessControlList settings of the object in S3.
        Throws:
        ServiceException
      • putObjectAclWithSignedUrl

        void putObjectAclWithSignedUrl​(String signedAclUrl,
                                       AccessControlList acl)
                                throws ServiceException
        Sets an object's ACL details using a pre-signed PUT URL generated for that object. This method is an implementation of the interface SignedUrlHandler.
        Parameters:
        signedAclUrl - a signed URL.
        acl - the ACL settings to apply to the object represented by the signed URL.
        Throws:
        ServiceException