首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理大量文件的技巧?

管理大量文件的技巧?
EN

Stack Overflow用户
提问于 2009-03-22 16:38:05
回答 6查看 10K关注 0票数 15

这里有一些关于文件管理和在大型项目中存储的非常好的问题。

Storing Images in DB - Yea or Nay?

Would you store binary data in database or in file system?

第一个很有洞察力,在我的项目中,我决定选择文件路由,而不是DB路由。

反对使用文件系统的一个要点是备份。但在我们的系统中,我们有一个很好的备份方案,所以我不担心。

下一步是如何存储实际文件。我一直在考虑让文件的位置在任何时候都是静态的,并在数据库端创建一个虚拟目录系统。所以指向文件的链接不会改变。

我正在构建的系统将有一个全局文件管理,这样所有的文件都可以被所有的用户访问。但是,许多已经走上文件路径的人谈到了物理目录大小(例如,如果所有文件都在一个目录中)。

因此,我的问题是,在为这些静态文件创建文件夹方面有哪些技巧或最佳实践方法,或者我根本不应该使用虚拟目录路径。

(该项目位于灯堆栈(PHP)上,如果这有帮助的话)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-03-22 16:49:11

一种方法是为每个文件分配一个唯一的编号,并使用它来查找实际的文件位置。然后,使用该数字在文件系统中的不同目录中分发文件.例如,您可以使用这样的方案:

/images/{0}/{1}/{2}

{0}: file_number % 100

{1}: (file_number / 100) % 100

{2}: file_number

票数 13
EN

Stack Overflow用户

发布于 2009-03-22 17:47:48

一段时间前,我遇到了这个问题,因为一个网站承载了很多文件。我们所做的是获取一个GUID (它也是一个文件的主键字段)(例如BCC46E3F-2F7A-42b1-92CE-DBD6EC6D6301)并存储这样一个文件: /B/C/C/BCC46E3F-2F7A-42b1-92CE-DBD6EC6D6301/filename.ext

这样做有一定的好处:

  • 您可以在多台服务器上扩展文件服务器(并为每个服务器分配特定目录)
  • 您不必重命名文件
  • 您的目录保证是唯一的

希望这能有所帮助!

票数 10
EN

Stack Overflow用户

发布于 2009-03-22 16:50:42

为了避免在单个目录中创建过多的条目,您可能需要根据文件名的片段创建目录。例如,如果您有一个名为d7f5ae9b7c5a.png的文件,您可能希望将它存储在media/d7/f5/d7f5ae9b7c5a.png中。如果您的文件名都是十六进制,那么这将将单个目录中的条目数量限制在256到最后的级别。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/671260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档