Implement common rate limit on public downloads of media.
This commit is contained in:
parent
efd6c8f0de
commit
1c290a9d05
|
@ -120,7 +120,8 @@ return static function (RouteCollectorProxy $group) {
|
|||
$group->get(
|
||||
'/download[.{extension}]',
|
||||
Controller\Api\Stations\Podcasts\Episodes\Media\GetMediaAction::class
|
||||
)->setName('api:stations:public:podcast:episode:download');
|
||||
)->setName('api:stations:public:podcast:episode:download')
|
||||
->add(Middleware\RateLimit::forDownloads());
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ return static function (RouteCollectorProxy $group) {
|
|||
$group->get('/ondemand/download/{media_id}', Controller\Api\Stations\OnDemand\DownloadAction::class)
|
||||
->setName('api:stations:ondemand:download')
|
||||
->add(new Middleware\StationSupportsFeature(StationFeatures::OnDemand))
|
||||
->add(new Middleware\RateLimit('ondemand', 1, 2));
|
||||
->add(Middleware\RateLimit::forDownloads());
|
||||
|
||||
// NOTE: See ./api_public.php for podcast public pages.
|
||||
|
||||
|
|
|
@ -27,4 +27,9 @@ final class RateLimit extends AbstractMiddleware
|
|||
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
public static function forDownloads(): self
|
||||
{
|
||||
return new self('downloads', 30, 10);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue