按日期在服务器子文件夹中存储大量文件



我想在多个文件夹中分离存储在服务器上的图像。我想创建这个结构/images/year/month (images/2011/04)。文件名存储在数据库中,并创建日期。单独的文件是一个好主意吗?

嗯,这部分取决于你想用它们做什么,以及你认为这是一个很大的数字。

与索引数据库中的列一样,该方案可能对某些操作有利,而对其他操作不利。

例如,在没有可用日期的简单方案中,能够根据其名称的一部分找到图像可能会变得更加困难,因为您不知道它在哪里。我已经将这种方案用于日志文件之类的东西,但它工作得很好,因为我已经知道将在哪里:
/logs/2011/01/2011_01_14.log

而不需要去搜索

现在你已经解决了这个特殊的问题,因为你的数据库条目也保存了日期,所以我看不出你的方案有任何直接的问题。这并不是说没有:-)

我的建议是首先做最简单的事情(平面目录格式),只有当它成为问题时才担心它。既然您有了日期,那么基于日期将所有图像移动到单独的目录将是一件简单的事情。

当然,如果您已经实现了单独的目录,请坚持这样做。同样,如果该方法存在缺陷,则希望在将来能够相对容易地进行调整。

可能想要考虑的一件事是在数据库中存储位置(绝对位置,或相对于已知点),而不仅仅是日期。然后,您将使用它(而不是对日期进行操作)来定位文件。

这将允许您完全更改用于放置文件的方法,而无需更改定位它们的任何代码。

听起来不错。我经营了一家照片初创公司大约5年,使用了类似的结构来存储照片。它应该适度地缩放(我们有≈1M张照片)。我还会考虑存储图像的sha1或md5散列,以便您可以轻松地检测重复项,并确保在将其持久化到磁盘之前对文件名进行了规范化。

相关内容

  • 没有找到相关文章

最新更新