【问题标题】:Potentially upload huge amount of images可能会上传大量图片
【发布时间】:2014-03-15 10:57:06
【问题描述】:

我正在开发一个网络应用程序,该应用程序可能有未知数量的图像上传。结构类似于:业务--产品--图像。一个企业可以有很多产品,每个产品可以有3到50张图片。系统对所有人开放注册和创建业务,所以当有10k个商家,每个商家有10个产品,每个产品有10张图片时,会有100万张图片上传到服务器。

我的问题是这些图像应该如何存储在服务器上。我知道 Linux 有一个限制,我通常所做的是以某种模式拆分文件名或特定字符串以将文件传播到分层结构中,因此每个文件夹都包含少量文件。这样做的好处是它解决了文件限制问题并且可以快速检索文件;另一方面,这种方法可能会在文件数量增加时使用过多的 iNode。

谁能帮我解决这个问题,网络服务器如何存储大量上传的文件?我不确定该应用程序是部署在 Linux 服务器上还是 Windows 服务器上,请告诉我你是怎么做的!

真诚感谢任何帮助!

【问题讨论】:

  • 我想出了一个办法,和我的老办法一样。我使用 business_create_date/business_id/product_id/images... 这应该传播上传的图像。不知道这样好不好,有更好的主意吗?

标签: file upload limit store


【解决方案1】:

http://highscalability.squarespace.com/blog/2012/6/20/ask-highscalability-how-do-i-organize-millions-of-images.html

如您所见,有很多方法可以做到这一点,我个人推荐 SHA 1 散列方法。顶级目录将取决于您的哈希生成的前两个字符。二级目录将基于后两个字符。我发现这可以很好地传播图像并生成一个相当健壮的文件结构。如果您不采用这种方法,您可以为每个图像生成 GUID 并做同样的事情,但是您必须努力确保唯一性和所有这些

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多