org.jets3t.service.utils.signedurl
Interface SignedUrlHandler

All Known Implementing Classes:
RestS3Service

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 Summary
 void deleteObjectWithSignedUrl(java.lang.String signedDeleteUrl)
          Deletes an object using a pre-signed DELETE URL generated for that object.
 AccessControlList getObjectAclWithSignedUrl(java.lang.String signedAclUrl)
          Gets an object's ACL details using a pre-signed GET URL generated for that object.
 S3Object getObjectDetailsWithSignedUrl(java.lang.String signedHeadUrl)
          Gets an object's details using a pre-signed HEAD URL generated for that object.
 S3Object getObjectWithSignedUrl(java.lang.String signedGetUrl)
          Gets an object using a pre-signed GET URL generated for that object.
 void putObjectAclWithSignedUrl(java.lang.String signedAclUrl, AccessControlList acl)
          Sets an object's ACL details using a pre-signed PUT URL generated for that object.
 S3Object putObjectWithSignedUrl(java.lang.String signedPutUrl, S3Object object)
          Puts an object using a pre-signed PUT URL generated for that object.
 

Method Detail

putObjectWithSignedUrl

S3Object putObjectWithSignedUrl(java.lang.String signedPutUrl,
                                S3Object object)
                                throws S3ServiceException
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 with #createSignedPutUrl(String, String, java.util.Map, org.jets3t.service.security.AWSCredentials, java.util.Date).
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:
S3ServiceException

deleteObjectWithSignedUrl

void deleteObjectWithSignedUrl(java.lang.String signedDeleteUrl)
                               throws S3ServiceException
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 generated with S3Service.createSignedDeleteUrl(String, String, org.jets3t.service.security.AWSCredentials, java.util.Date).
Throws:
S3ServiceException

getObjectWithSignedUrl

S3Object getObjectWithSignedUrl(java.lang.String signedGetUrl)
                                throws S3ServiceException
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 generated with S3Service.createSignedGetUrl(String, String, org.jets3t.service.security.AWSCredentials, java.util.Date).
Returns:
the S3Object in S3 including all metadata and the object's data input stream.
Throws:
S3ServiceException

getObjectDetailsWithSignedUrl

S3Object getObjectDetailsWithSignedUrl(java.lang.String signedHeadUrl)
                                       throws S3ServiceException
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 generated with S3Service.createSignedHeadUrl(String, String, org.jets3t.service.security.AWSCredentials, java.util.Date).
Returns:
the S3Object in S3 including all metadata, but without the object's data input stream.
Throws:
S3ServiceException

getObjectAclWithSignedUrl

AccessControlList getObjectAclWithSignedUrl(java.lang.String signedAclUrl)
                                            throws S3ServiceException
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 generated with S3Service.createSignedUrl(String, String, String, String, java.util.Map, org.jets3t.service.security.AWSCredentials, long, boolean).
Returns:
the AccessControlList settings of the object in S3.
Throws:
S3ServiceException

putObjectAclWithSignedUrl

void putObjectAclWithSignedUrl(java.lang.String signedAclUrl,
                               AccessControlList acl)
                               throws S3ServiceException
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 generated with S3Service.createSignedUrl(String, String, String, String, java.util.Map, org.jets3t.service.security.AWSCredentials, long, boolean).
acl - the ACL settings to apply to the object represented by the signed URL.
Throws:
S3ServiceException