次のコード例に加えて、AWS SDK for Java (バージョン 1) のCloudFrontUrlSigner
ユーティリティクラスを使用して CloudFront の署名付き URL を作成することもできます。
その他の例については、「AWS SDK コードサンプルコードライブラリ」の「AWS SDK を使用して署名付き URL と Cookie を作成する」を参照してください。
注記
署名付き URL の作成は、CloudFront を使用してプライベートコンテンツを供給するプロセスの一部にすぎません。プロセス全体の詳細については、「署名付き URL を使用する」を参照してください。
以下の例は、CloudFront の署名付き URL の作成方法を示しています。
例 Java のポリシーおよび署名暗号化メソッド
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);
}
}
次の資料も参照してください: