1

Bandwidth Throttle」ライブラリを使用して API リクエストを調整しています。基本的に、同じ IP からの誰かが設定された時間枠内に大量のリクエストを作成するのを防ぎます。これにより、buckets ディレクトリ内に格納されるバケット (単純にファイル) が作成されます。

これは時間の経過とともにかなり蓄積されるため、誰もがこれにどのプロセスを使用するか-このフォルダーをパージするのにどれくらいの時間をお勧めしますか?もしそうなら、どのような時間枠が提案されますか.

use bandwidthThrottle\tokenBucket\Rate;
use bandwidthThrottle\tokenBucket\TokenBucket;
use bandwidthThrottle\tokenBucket\storage\FileStorage;

$ip = $_SERVER['REMOTE_ADDR'];
$storage = new FileStorage(__DIR__ . "/buckets/$ip.bucket"); //this will build up quickly
$rate    = new Rate(10, Rate::SECOND);
$bucket  = new TokenBucket(10, $rate, $storage);
$bucket->bootstrap(10);

if (!$bucket->consume(1, $seconds)) {
  http_response_code(429);
  header(sprintf("Retry-After: %d", floor($seconds)));
  exit(); 
}
4

0 に答える 0