Create a URL signature using Java - Amazon CloudFront

Create a URL signature using Java

In addition to the following code example, you can use the CloudFrontUrlSigner utility class in the AWS SDK for Java (version 1) to create CloudFront signed URLs.

For more examples, see Create signed URLs and cookies using an AWS SDK in the AWS SDK Code Examples Code Library.

Note

Creating a signed URL is just one part of the process of serving private content with CloudFront. For more information about the entire process, see Use signed URLs.

The following example shows how to create a CloudFront signed URL.

Example Java policy and signature encryption methods
package org.example; import java.time.Instant; import java.time.temporal.ChronoUnit; import software.amazon.awssdk.services.cloudfront.CloudFrontUtilities; import software.amazon.awssdk.services.cloudfront.model.CannedSignerRequest; import software.amazon.awssdk.services.cloudfront.url.SignedUrl; public class Main { public static void main(String[] args) throws Exception { CloudFrontUtilities cloudFrontUtilities = CloudFrontUtilities.create(); Instant expirationDate = Instant.now().plus(7, ChronoUnit.DAYS); String resourceUrl = "https://a1b2c3d4e5f6g7.cloudfront.net"; String keyPairId = "K1UA3WV15I7JSD"; CannedSignerRequest cannedRequest = CannedSignerRequest.builder() .resourceUrl(resourceUrl) .privateKey(new java.io.File("/path/to/private_key.pem").toPath()) .keyPairId(keyPairId) .expirationDate(expirationDate) .build(); SignedUrl signedUrl = cloudFrontUtilities.getSignedUrlWithCannedPolicy(cannedRequest); String url = signedUrl.url(); System.out.println(url); } }

See also: