【问题标题】:Saving images on heroku DB versus Amazon S3: Pros Cons?在 heroku DB 上保存图像与 Amazon S3:优点缺点?
【发布时间】:2012-06-02 11:03:58
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: database image heroku amazon-s3


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的澄清。
    • 完全 - 在涉及静态资产时不要理会流程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2014-12-08
    • 2013-12-20
    • 2018-12-19
    • 2012-07-06
    • 1970-01-01
    相关资源
    最近更新 更多