メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

Perl を使用して URL 署名を作成する

Perl スクリプトでは、コマンドライン引数に CloudFront URL、署名者のプライベートキーへのパス、キー ID、および URL の有効期限切れ日付を指定することで、プライベートコンテンツの署名を作成します。このツールでは、署名付き URL のデコードを行うこともできます。ツール cfsign.pl を取得するには、「Amazon CloudFront 署名付き URL のヘルパーツール」にアクセスしてください。

注記

URL 署名の作成は、署名付き URL を使用してプライベートコンテンツを供給するためのプロセスの 1 パートにすぎません。プロセス全体の詳細については、「署名付き URL の使用」を参照してください。

次の例は、cfsign.pl を使用して RTMP ディストリビューションの署名を作成する方法を示しています。

Copy
$ cfsign.pl --action encode --stream example/video.mp4 --private-key /path/to/my-private-key.pem --key-pair-id PK12345EXAMPLE --expires 1265838202

このツールでは、コマンドライン引数を使用してポリシーステートメントを生成します。生成される署名は、ポリシーステートメントの SHA1 ハッシュです。

base64 エンコードされたストリーム名の例を以下に示します。

Copy
mp4:example/video.mp4%3FPolicy%3DewogICJTdGF0ZW1lbnQiOlt7CiAgICAgICJSZXNvdXJjZSI 6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICAiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2V JcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE 0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_%26Signature%3DewtHqEXK~68tsZt-eOFnZKGwTf2a JlbKhXkK5SSiVqcG9pieCRV3xTEPtc29OzeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP 17Af4nWtOLIZHoH6wkR3tU1cQHs8R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_%26Key-Pair-Id%3 DPK12345EXAMPLE

この署名は、プライベートコンテンツ example/video.mp4 のストリーミングリクエストを認証します。Adobe Flash Player を使用しており、ストリーム名が JavaScript によってウェブページから渡される場合は、署名を base64 エンコードして、URL リクエストパラメーターの無効な文字(+、=、/)を有効な文字(それぞれ -、_、~)で置き換えます。ストリーム名がウェブページから渡されない場合、署名を base64 エンコードする必要はありません。たとえば、独自のプレーヤーを作成し、ストリーム名を Adobe Flash .swf ファイルからフェッチする場合、署名を base64 エンコードしません。

CloudFront で jwplayer を使用する例を次に示します。

Copy
<script type='text/javascript'> var so1 = new SWFObject ('http://d84l721fxaaqy9.cloudfront.net/player/player.swf', 'mpl', '640', '360', '9'); so1.addParam('allowfullscreen','true'); so1.addParam('allowscriptaccess','always'); so1.addParam('wmode','opaque'); so1.addVariable('streamer','rtmp://s33r3xe4ayhhis.cloudfront.net/cfx/st'); so1.addVariable("file","mp4:example/video.mp4%3FPolicy%3DewogICJTdGF0ZW1lbnQi Olt7CiAgICAgICJSZXNvdXJjZSI6ImRyciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICA iSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTG Vzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTkxNjgwMH0KICAgICAgfQogICAgEXAMPLE_% 26Signature%3DewtHqEXK~68tsZt-eOFnZKGwTf2aJlbKhXkK5SSiVqcG9pieCRV3xTEPtc29O zeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWtOLIZHoH6wkR3tU1cQHs8 R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_%26Key-Pair-Id%3DPK12345EXAMPLE so1.write('flv'); </script>

Adobe Flash .swf ファイル内からストリームを取り込んで再生する場合、たとえば次のように、ストリーム名を URL エンコードしないでください。

Copy
mp4:example/video.mp4?Policy=ewogICJTdGF0ZW1lbnQiOlt7CiAgICAgICJSZXNvdXJjZSI6ImR yciIsCiAgICAgICJDb25kaXRpb24iOnsKICAgICAgICAiSXBBZGRyZXNzIjp7IkFXUzpTb3VyY2VJcCI 6IjAuMC4wLjAvMCJ9LAogICAgICAgICJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MjE0NTk xNjgwMH0KICAgICAgfQogICAgEXAMPLE_&Signature=ewtHqEXK~68tsZt-eOFnZKGwTf2aJlbKhXkK 5SSiVqcG9pieCRV3xTEPtc29OzeXlsDvRycOM2WK0cXzcyYZhpl9tv2796ihHiCTAwIHQ8yP17Af4nWt OLIZHoH6wkR3tU1cQHs8R1d-g-SlZGjNBXr~J2MbaJzm8i6EXAMPLE_&Key-Pair-Id=PK12345 EXAMPLE

コマンドラインスイッチおよびこのツールの各種機能の詳細については、Perl ソースコード内のコメントを参照してください。

以下の資料も参照してください。