database - 在 heroku DB 和 Amazon S3 上保存图像 : Pros Cons?

标签 database image heroku amazon-s3

我在 Internet 上到处搜索了将图像保存在 Heroku PG-SQL 数据库中与将图像保存在 Amazon S3 中的比较。我目前正在尝试做出设计决定。然而,这是我第一次编写网络应用程序。到目前为止,这是我所知道的决定:

  1. 在数据库中保存图像会降低应用程序的性能
  2. 与文件系统相比,在 Db 上保存图像的成本很高
  3. 您无法访问 Heroku 中的文件系统
  4. 您可以以非常便宜的价格将图像保存在 Amazon S3 中
  5. 存储在 Amazon S3 上的图像如果不通过 Heroku 上的应用程序,则无法在保存前进行处理
  6. 每次调用在 Amazon S3 上检索和保存图像都需要付费
  7. 如果浏览器正在检索具有图像的对象,则浏览器会为每个对象发出 2 次请求,一次请求来自 heroku 的数据,另一次请求来自 S3 的图像。这可能会有问题,因为浏览器每单位时间只能发出特定的 >m.unt 个请求。
  8. 如果图像较小,则将图像保存在数据库中不会降低性能。
  9. 从数据库中删除图片会导致碎片化

这些是我对这个话题的了解。就目前情况而言,我倾向于在 Heroku DB 中保存图像。由于它们大多是缩略图/小图像,并且它们的大小小于 250MB

我想知道是否有人可以让我知道这些事实是否有误,或者在做出此设计决定时是否需要考虑其他因素。

此外,如果有人能指出网络上关于此主题的一些良好讨论,我将不胜感激。我找不到关于此讨论的任何内容。

最佳答案

将它们保存在 S3 上。在性能方面,它比存储在数据库中领先——如果您存储在数据库中,请求必须通过您的 Web 应用程序,然后发出数据库请求(或立即点击清漆,但无论如何都是如此)。此外,除非您有很多测功机,否则这意味着用户一次只能获取一张图像(瘦是单线程的,除非在针对长时间运行的请求的特殊配置下)。使用 S3(或任何云存储解决方案),它就像对静态资源的另一个 HTTP 请求一样简单——您的应用程序甚至不必知道它!

关于database - 在 heroku DB 和 Amazon S3 上保存图像 : Pros Cons?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778555/

相关文章:

Java Statement.executeQuery SQL 错误 ORDER BY 和/或 LIMIT - 不确定正确的格式是什么

mysql - 与使用完整的 MySQL 相比,使用独立的 SQL 文件是否有风险?

javascript - 如何模拟点击<input type ="image"/>?

ruby-on-rails - Heroku ruby​​ buildpack 错误 - 未定义的局部变量或方法 `install_language_pack_gems'

ruby-on-rails - 如何从 Heroku 错误获取 Rails Heroku 日志回溯

java - 检查您的登录名和密码(Java Web、Servlets)

.net - Entity Framework 5.0 奇怪的问题

android - 在 Android 中生成 Pdf 的缩略图

html - 全宽图像上的相对定位

ruby-on-rails - 使用 VPN 在 Heroku 上获取静态 IP