2

現時点では、EC2 インスタンスを介して GET (ダウンロード) リクエストを S3 にプロキシしています。これを行う理由は、特定のファイルのトラフィック量を知りたいからです。

ここで、そのプロキシを使用しないようにしたいと考えています。しかし、その情報はまだ必要です。これを行う方法はありますか?

私が望むのは、特定のサーバーへの webhook/callback です。または、ログ ファイルからライブ/リアルタイムで読み取ることもできます。

これを達成する方法はありますか?かなり長い間答えを探してきましたが、おそらく私たちは正しい方向に考えていません.

4

2 に答える 2

2

S3 バケットのロギングを有効にしてから、(オプションで) クライアントをバケットに直接送信します。

ログ形式には、「送信バイト数」、「オブジェクト サイズ」、およびリモート IP、参照ページ、クエリ文字列を含む要求 URI などのその他の情報が含まれます。

もちろん、ログはリアルタイムではありませんが、数分ごとに新しいログがバケットにドロップされます。ログを取得して解析し、必要に応じて興味深いコンテンツを保存し、ログの月々のストレージ コストを払いたくない場合は削除します。

于 2013-02-08T00:33:28.113 に答える
0

リクエスト URL は同じままにして、EC2 インスタンスを指します。ただし、EC2 インスタンスを介して S3 からクライアントにコンテンツをプロキシする代わりに、EC2 インスタンスでユーザーを S3 URL にリダイレクトします。

リダイレクトには期限切れの署名付き URL を使用してください。EC2 インスタンスは、リクエストごとに適切な URL を作成でき、数分で期限切れになります。そうすれば、クライアントが S3 リソースをフェッチする時間がありますが、後で試したときに有効期限が切れているため、ブックマークは機能しません。そのため、リソースを取得するために常に EC2 インスタンスにアクセスする必要があり、アクセスを制御してログに記録できますが、コンテンツ自体をプロキシする必要はありません。

于 2013-01-29T13:09:49.973 に答える