【问题标题】:Errors while getting many images from S3 Laravel Storage [closed]从 S3 Laravel Storage 获取许多图像时出错 [关闭]
【发布时间】:2020-10-30 17:59:47
【问题描述】:

我与 Laravel 控制器关联的 API 路由之一,它返回存储在 AWS S3 上的图像的 URL。

我的功能看起来像

public function getImage($params) {
  //... $image is fetched from database
  return Storage::disk('s3')->response("some_path/".$image->filename);
}

当我请求少量图像时,此代码可以正常工作,但是当我尝试在某个可以快速滚动的列表中使用它时,某些请求会失败。我做错了什么?

【问题讨论】:

  • 失败错误码是什么?
  • 我看到 429 错误代码 - 请求太多

标签: laravel amazon-s3 laravel-storage


【解决方案1】:

由于您正在快速滚动并填充列表,因此向您的服务器发出了大量请求。

Laravel 在你的路由上默认安装了一个节流中间件,以降低安全风险。

在您的情况下,您正在使用油门的限制,导致 429 错误代码。

您的 PHP 代码是正确的,您的前端代码在尝试获取图像时应该不那么贪婪。

.... 或者你应该在 laravel 中提高允许的油门量,或者将其全部删除,但我不推荐它。

【讨论】:

  • 我可以提高单条路线的限制吗?
  • 是的,但这在某种程度上取决于您使用的 Laravel 版本。 L8 中的速率限制已更改,请参阅 amitmerchant.com/new-ratelimiter-facade-in-laravel-8 您可以在 Kernel.php 文件中找到分配给所有路由的默认油门中间件。还要检查您的路线是否有任何节流中间件。并且请确保您有一般的速率限制器来降低安全风险,例如请求泛滥。
猜你喜欢
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
相关资源
最近更新 更多