【问题标题】:Where to store images on a filesystem on webserver在网络服务器的文件系统上存储图像的位置
【发布时间】:2012-03-21 16:17:27
【问题描述】:

如果不在我的 MySQL 数据库中,我应该将图像存储在网络服务器的什么位置?有人告诉我,将图像作为 BLOB 存储在数据库中是不好的做法。

另外,如何在数据库中存储对这些图像的引用?如果我有一个 food_items 表,这个表可以是这样的吗?

食品

标识 |姓名 |说明 |价格 |图片网址

1 |鸡|好吃| 100 | www.myurl.com/folderwithimages/image.jpg ??

谢谢

【问题讨论】:

  • 您应该存储完整的 url,包括 http:// 或文档根目录的绝对路径 (/folderwithimage/image.jpg)。但是是的,它是一个数据库,您可以在其中放入任何您想要的东西。
  • CDN 怎么样?它们提供各种缓存和地理位置优化的东西,而且你不会让你的网络服务器处理静态文件。

标签: mysql database image


【解决方案1】:

如果这是一个 Web 服务器,我强烈建议您将图像放入 S3。这里有一些关于 Amazon S3 的文档。

【讨论】:

    【解决方案2】:

    我建议仅将图像名称存储在数据库中,并将所有图像保存在 /yoursiteroot/folderwithimages 中。

    该表看起来不错,但我不建议您存储完整的 URL,以防您以后想更改图像的路径或 URL。

    【讨论】:

    • 好吧,你们都说要使用相对 URL,那么我该如何完成 URL 的连接呢?如添加 myurl.com/mysiteroot/folderwithimages。 myurl.com 部分从何而来?谢谢
    【解决方案3】:

    将图像存储在网络服务器上文件系统的 /images 文件夹中

    不要在您的数据库中存储图片的完整 URL。存储图像的相对 URL,因此如果您的域发生更改,您不必再次更新数据库。

    /images/image.jpg

    【讨论】:

      【解决方案4】:

      避免使用数据库存储图像是一个好习惯,将图像保存在数据库中不仅会降低数据库性能,还会增加数据库的大小和备份,如果您使用云服务,那么还有成本问题。

      为此目的使用 S3 或 Yahoo。剩下要做的就是让您的站点应用程序连接这两个服务(数据库和图像服务),我使用了this tool

      仅当每个图像位于不同的位置时才存储完整路径,为每个数据条目存储相同的数据是没有意义的,

      【讨论】:

      • 使用数据库视图连接基本 url "myurl.com/mysiteroot/" 和您存储在数据库中的文件名,或者您可以使用我建议的工具,您只需要一些配置。
      猜你喜欢
      • 1970-01-01
      • 2017-05-28
      • 2011-12-17
      • 2013-06-03
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多