|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD | DETAIL: ENUM CONSTANTS | FIELD | METHOD |
java.lang.Objectjava.lang.Enum<CloudFrontUrlSigner>
com.amazonaws.services.cloudfront.CloudFrontUrlSigner
public enum CloudFrontUrlSigner
Utility class for generating pre-signed URLs for serving private cloudfront
content. All dates must be in UTC. Use Calendar
to set the timezone
specifically before converting to a Date
object, or else use
DateUtils
to turn a UTC date String into a Date object.
Protocol protocol = Protocol.http; String distributionDomain = "d1b2c3a4g5h6.cloudfront.net"; File privateKeyFile = new File("/path/to/cfcurlCloud/rsa-private-key.pem"); String s3ObjectKey = "/a/b/images.jpeg"; String keyPairId = "APKAJCEOKRHC3XIVU5NA"; Date dateLessThan = DateUtils.parseIso8601Date("2012-11-14T22:20:00.000Z"); Date dateGreaterThan = DateUtils.parseIso8601Date("2011-11-14T22:20:00.000Z") String ipRange = "192.168.0.1/24"; String url1 = CloudFrontUrlSigner.getCannedSignedURL(protocol, distributionDomain, privateKeyFile, s3ObjectKey, keyPairId, dateLessThan); String url2 = CloudFrontUrlSigner.getCustomSignedURL(protocol, distributionDomain, privateKeyFile, s3ObjectKey, keyPairId, dateLessThan, dateGreaterThan, ipRange);
DateUtils
Nested Class Summary | |
---|---|
static class |
CloudFrontUrlSigner.Protocol
Enumeration of protocols for presigned URLs |
Method Summary | |
---|---|
static String |
buildCustomPolicyForSignedUrl(String resourcePath,
Date epochDateLessThan,
String limitToIpAddressCIDR,
Date epochDateGreaterThan)
Generate a policy document that describes custom access permissions to apply via a private distribution's signed URL. |
static String |
getSignedURLWithCannedPolicy(CloudFrontUrlSigner.Protocol protocol,
String distributionDomain,
File privateKeyFile,
String s3ObjectKey,
String keyPairId,
Date dateLessThan)
Returns a signed URL with a canned policy that grants universal access to private content until a given date. |
static String |
getSignedURLWithCannedPolicy(String resourceUrlOrPath,
String keyPairId,
PrivateKey privateKey,
Date dateLessThan)
Generate a signed URL that allows access to a specific distribution and S3 object by applying a access restrictions from a "canned" (simplified) policy document. |
static String |
getSignedURLWithCustomPolicy(CloudFrontUrlSigner.Protocol protocol,
String distributionDomain,
File privateKeyFile,
String s3ObjectKey,
String keyPairId,
Date dateLessThan,
Date dateGreaterThan,
String ipRange)
Returns a signed URL that provides tailored access to private content based on an access time window and an ip range. |
static String |
getSignedURLWithCustomPolicy(String resourceUrlOrPath,
String keyPairId,
PrivateKey privateKey,
String policy)
Generate a signed URL that allows access to distribution and S3 objects by applying access restrictions specified in a custom policy document. |
static CloudFrontUrlSigner |
valueOf(String name)
Returns the enum constant of this type with the specified name. |
static CloudFrontUrlSigner[] |
values()
Returns an array containing the constants of this enum type, in the order they are declared. |
Methods inherited from class java.lang.Enum |
---|
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf |
Methods inherited from class java.lang.Object |
---|
getClass, notify, notifyAll, wait, wait, wait |
Method Detail |
---|
public static CloudFrontUrlSigner[] values()
for (CloudFrontUrlSigner c : CloudFrontUrlSigner.values()) System.out.println(c);
public static CloudFrontUrlSigner valueOf(String name)
name
- the name of the enum constant to be returned.
IllegalArgumentException
- if this enum type has no constant
with the specified name
NullPointerException
- if the argument is nullpublic static String getSignedURLWithCannedPolicy(CloudFrontUrlSigner.Protocol protocol, String distributionDomain, File privateKeyFile, String s3ObjectKey, String keyPairId, Date dateLessThan) throws InvalidKeySpecException, IOException
protocol
- The protocol of the URLdistributionDomain
- The domain name of the distributions3ObjectKey
- The s3 key of the object, or the name of the stream for rtmpprivateKeyFile
- The private key file. RSA private key (.pem) and pkcs8 (.der)
files are supported.keyPairId
- The key pair id corresponding to the private key file givendateLessThan
- The expiration date of the signed URL in UTC
InvalidKeySpecException
IOException
public static String getSignedURLWithCustomPolicy(CloudFrontUrlSigner.Protocol protocol, String distributionDomain, File privateKeyFile, String s3ObjectKey, String keyPairId, Date dateLessThan, Date dateGreaterThan, String ipRange) throws InvalidKeySpecException, IOException
protocol
- The protocol of the URLdistributionDomain
- The domain name of the distributionprivateKeyFile
- Your private key file. RSA private key (.pem) and pkcs8 (.der)
files are supported.s3ObjectKey
- The s3 key of the object, or the name of the stream for rtmpkeyPairId
- The key pair id corresponding to the private key file givendateLessThan
- The expiration date of the signed URL in UTCdateGreaterThan
- The beginning valid date of the signed URL in UTCipRange
- The allowed IP address range of the client making the GET
request, in CIDR form (e.g. 192.168.0.1/24).
IOException
InvalidKeySpecException
public static String getSignedURLWithCustomPolicy(String resourceUrlOrPath, String keyPairId, PrivateKey privateKey, String policy)
resourceUrlOrPath
- The URL or path that uniquely identifies a resource within a
distribution. For standard distributions the resource URL will
be "http://" + distributionName + "/" + objectKey
(may also include URL parameters. For distributions with the
HTTPS required protocol, the resource URL must start with
"https://". RTMP resources do not take the form of a
URL, and instead the resource path is nothing but the stream's
name.keyPairId
- Identifier of a public/private certificate keypair already
configured in your Amazon Web Services account.privateKey
- The RSA private key data that corresponding to the certificate
keypair identified by keyPairId.policy
- A policy document that describes the access permissions that
will be applied by the signed URL. To generate a custom policy
use
public static String getSignedURLWithCannedPolicy(String resourceUrlOrPath, String keyPairId, PrivateKey privateKey, Date dateLessThan)
resourceUrlOrPath
- The URL or path that uniquely identifies a resource within a
distribution. For standard distributions the resource URL will
be "http://" + distributionName + "/" + objectKey
(may also include URL parameters. For distributions with the
HTTPS required protocol, the resource URL must start with
"https://". RTMP resources do not take the form of a
URL, and instead the resource path is nothing but the stream's
name.keyPairId
- Identifier of a public/private certificate keypair already
configured in your Amazon Web Services account.privateKey
- The private key data that corresponding to the keypair
identified by keyPairIddateLessThan
- The UTC time and date when the signed URL will expire.
REQUIRED.
public static String buildCustomPolicyForSignedUrl(String resourcePath, Date epochDateLessThan, String limitToIpAddressCIDR, Date epochDateGreaterThan)
resourcePath
- An optional HTTP/S or RTMP resource path that restricts which
distribution and S3 objects will be accessible in a signed
URL. For standard distributions the resource URL will be
"http://" + distributionName + "/" + objectKey (may
also include URL parameters. For distributions with the HTTPS
required protocol, the resource URL must start with
"https://". RTMP resources do not take the form of a
URL, and instead the resource path is nothing but the stream's
name. The '*' and '?' characters can be used as a wildcards to
allow multi-character or single-character matches
respectively:
epochDateLessThan
- The UTC time and date when the signed URL will expire. REQUIRED.limitToIpAddressCIDR
- An optional range of client IP addresses that will be allowed
to access the distribution, specified as a CIDR range. If
null, the CIDR will be 0.0.0.0/0 and any client will
be permitted.epochDateGreaterThan
- An optional UTC time and date when the signed URL will become
active. If null, the signed URL will be active as soon as it
is created.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD | DETAIL: ENUM CONSTANTS | FIELD | METHOD |