どうやら私は自分の Web サイト用に MP3 ファイルを使って同じことを試みるのに膨大な時間を費やしたようです。答える:
1) あまりにも複雑なタスクではありません。(私のガジリオン時間にもかかわらず)
2) Flash 内から URL に署名しないでください。署名付き URL を取得するために AJAX 要求を行うことができるホストされた PHP ファイルを使用します。このため、S3 バケットのディレクトリ構造は、何らかの入力が与えられたときにファイルの場所をプログラムで決定できるようにする一貫したパターンを持っている必要があります。
これはバイパスできるプロセスではありません。URL 署名はサーバー側でのみ行う必要があり、クライアント側では行う必要はありません。私の AJAX サンプル コードを見たい場合はお知らせください。ここに貼り付けます
3) 署名プロセスでは、少なくとも 3 つの変数 (タイムスタンプ、ファイルの場所 (bucket/folder/floder/file)、S3 シークレット キー) を使用して署名を作成します。したがって、ファイルの各リクエストには個別の署名が必要です。署名付き URL の有効期限は非常に限られています (たとえば 10 秒)。その 10 秒以内に URL がわかったユーザーは、ファイルをダウンロードできます。
タイムスタンプだけで異なる署名を使用すると、URL に署名するという目的全体が (完全ではないにしても、ほとんど) 無効になる可能性があります。
URL に署名するには、次のスクリプトを使用します。それは魅力のように機能し、時間通りに取得できていれば、多くの時間を節約できたでしょう. 追加のセキュリティについては、以下のポイント 5 も参照してください。
http://www.richardpeacock.com/blog/2010/07/amazon-aws-s3-query-string-authentication-php
4) 何らかの理由で、FLASH プレーヤーが MP3 ファイルの署名付き S3 URL を再生しません。URLの.mp3拡張子が読み取られると、URLの一部を無視すると思います(GUESS)。したがって、URL のクエリ文字列部分はプレーヤーによって無視され、ファイルを読み取ることができません。ただし、彼らは私の S3 Bucker で公的に復元可能なファイルを再生します。私は自分のサイトに Silverlight を使用しており、FLASH ソリューションに必死に使用しています。それが保護された FLV ファイルが再生されない理由である場合。この場合、URL だけではなく、ファイル全体をクライアントにプロキシする必要があります。私が避けようとしている解決策。
5) URL をさらに保護するには、以下のリンクにある 1 つまたは複数の方法を使用して URL を難読化します。それらは非常に単純です。
http://www.pc-help.org/obscure.htm
6) さらに、セキュリティ アプローチは、URL の有効期限が切れる前にブラウザでファイルの再生を開始する必要があります。有効期限は、有効期限が切れる前に URL が検出されないように十分に短くする必要があり、再生を開始するための十分な待ち時間を提供できるように十分に長くする必要があります。これは多かれ少なかれ、自己期限切れ URL を使用した合理的に安全なストリーミングの核心です。