0

コミュニティの写真共有サイトで作業していますが、帯域幅を制御する方法が必要です。たとえば、許可される最大帯域幅を設定したいと思います。これは、画像サイズx画像が表示された回数です。photobucketのようなサイトが行うことと同様です(画像を帯域幅を超えた画像に置き換える場合)。

最善の解決策は何だろうかと思っています。画像が表示された回数を追跡するにはどうすればよいですか?たぶん、Google Analyticsのようなものを使用してから、頻繁にcronジョブを実行して、帯域幅の制限を超えている画像があるかどうかを確認する必要がありますか?これはやり過ぎかもしれないと思います、そして私はこの問題を考えすぎています。

ちなみに、私はPHPで開発しています。

何か案は?

ありがとう!

アップデート

さて、mod-rewriteが進むべき道のようです。現在、.htaccessに次のコードがあります。

RewriteEngine on
RewriteRule .*.(gif|jpg|jpeg|png)$ /include/image.php

実際の画像(つまりhttp ://... picture.jpeg )に移動すると、PHPページのimage.phpが読み込まれますが、画像がimgタグ(つまりimg src = http:// .. .. picture.jpeg)、画像は読み込まれません(良好)が、phpファイルはその場所に読み込まれません

どうすれば修正できますか?

ありがとう

解決

誰かが興味を持っているなら、これはうまくいきました(おそらくそれは改善される可能性がありますが):

RewriteEngine on
RewriteRule (.*).(jpg|jpeg|gif|png|wbmp)$ /include/image.php?location=$1&format=$2 [NC,L]

image.phpが受け取っている$_GET変数を見ると、おそらくそこから何をすべきかがわかります。

4

2 に答える 2

3

画像と詳細のデータベースを保持していると思います。画像へのリクエストをデータベースに保存できませんか?ある日のリクエスト数がnを超えると、画像を拒否します。

このルートを使用すると、ユーザーが画像自体に直接アクセスできるようにするのではなく、PHPスクリプトを介してすべての画像を提供する必要があります。mod_rewriteをapacheと一緒に使用すると、保存されているデータに対してチェックを実行して、実際の画像を出力するのか、代わりに一般的な「帯域幅を超えた」画像を出力するのかを判断できるすべてのリクエストを書き換えることができますimages/001830.jpgimages/serve.php?id=001830

于 2010-01-14T22:02:51.673 に答える
0

データベースにカウンターを保持し、ユーザーが画像を見るたびに1を追加します。最後のビューが前日だった場合は、日付と時刻を並べ替えることもできます。カウンターを1にリセットします。

于 2010-01-14T22:03:09.867 に答える