Thumbor On Heroku 导致 heroku 在获取时超时 URL returns 404

Thumbor On Heroku causes heroku time out when fetching URL returns 404

我们在 Heroku 上托管我们的 thumbor 图像大小调整服务,图像存储在 aws s3 中。 Thumbor 服务通过 aws 插件访问 s3。 最近我们在我们的 thumbor 服务上观察到一个我不明白的行为。

用例:我们的客户端应用程序正在发送调整大小请求以调整 aws S3 中不存在的图像。

预期行为:

  1. thumbor 服务在 s3 中获取图像。

  2. s3 returns 404 未找到

  3. thumbor return 404 到 heroku,路由器 returns 404 到客户端应用程序。

我们观察到的: 在某些情况下(我无法始终如一地重现)。 s3 returns 404 但 thumbor 不会让 heroku 路由器知道。结果,heroku 等待 30 秒,return 503 请求超时。

流淌的是原木

2016-05-31T19:38:15.094468+00:00 app[web.1]: 2016-05-31 19:38:15 thumbor:WARNING ERROR retrieving image from S3 [bucket]/3C6A3A84-F249-458B-9EFA-BF9BC863874B: {'ResponseMetadata': {'HTTPStatusCode': 404, 'RequestId': '3D61A8CBB187D846', 'HostId': 'C1qYC9Au42J0Salt1SVlCkcvcrKcQv4dltwOCdwGNF1TUFScWpkHb1qC++ZBJ0JzVqQlXW0xONU='}, 'Error': {'Key': '[bucket]/3C6A3A84-F249-458B-9EFA-BF9BC863874B', 'Code': 'NoSuchKey', 'Message': 'The specified key does not exist.'}}

2016-05-31T19:38:14.777549+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/bALh_vgGXd7e_J7kZ0GhyE_lhZ0=/150x150/[bucket]/3C6A3A84-F249-458B-9EFA-BF9BC863874B" host=heroku.app.com request_id=67d87ea3-8010-4fbe-8c29-b2b7298f1cbc fwd="54.162.233.176,54.240.144.43" dyno=web.1 connect=5ms service=30000ms status=503 bytes=0

我想知道是否有人可以帮助理解为什么 thumbor 挂起?

非常感谢!

这个问题与我们使用的 tc_aws 库有关。当从 S3 返回 404 时,它没有执行回调函数。我们的版本是 2.0.10。升级库后问题解决