1

在使用 JCR 的 wcm 中组织文件的正确方法是什么。假设总文件数为 100,000+ 个文件,总文件大小约为 50-70GB。按文件类型组织文件是否更好(并创建子目录以进一步按某些类别对文件进行分组)

有什么优势。使用查询 api、维护或其他东西时有什么不同吗?

Proposal 1:
--shared
------images
------pdf
------movies
--location1
------images
------pdf
------movies
--location2
------images
------pdf
------movies

Proposal 2: 
--pdf
-------shared
-------location1
-------location2
--images
--------shared
--------location1
--------location2
.. etc
4

2 回答 2

2

看看这个:大卫的模型:内容建模指南

一些亮点:

  • 先数据,后结构。也许。
  • 推动内容层次结构,不要让它发生。
  • 工作区用于 clone()、merge() 和 update()。
  • 当心同名兄弟姐妹。
  • 被认为有害的参考文献。
  • 文件是文件是文件。
  • ID是邪恶的。
于 2010-12-22T12:18:12.507 回答
1

无论您做什么,请确保您最终不会在任何给定节点下拥有超过 1000 个子节点。就像在任何(真实)文件系统中一样,当您想要列出其中包含大量文件/子文件夹的文件夹时,可能需要一些时间。默认情况下,Jackrabbit 2.x 现在将散列用户空间。IE:

/users/s/sa/sandra
/users/s/si/simong
...

我个人会赞成你的第一个建议,因为它更有意义。我们有一个 webapp,我们所有的用户都可以在 JCR 中上传/删除/修改他们的文件,并这样做:

/_users/s/si/simon/public
/_users/s/si/simon/public/My Pictures
/_users/s/si/simon/public/My Pictures/2010/06/Trip to the US
/_users/s/si/simon/public/My Pictures/2010/06/Trip to the US/DC1001.jpg
/_users/s/si/simon/private/account_details.txt
...

我们大致遵循在类 UNIX 系统中完成主文件夹的方式。我们试图把所有我们(合理地)能做的事情都整理出来。例如用户空间(/s/si/simong),还有消息之类的东西:

/_users/s/si/simong/messages/2009/12/25/ab34ed87dee
/_users/s/si/simong/messages/2010/03/12/e4f1de3cd48
...

但是,在给定文件夹中不能有超过 1000 个子文件取决于个人用户(尽管我们会警告他们。)这样做还可以为您提供执行访问控制的好处。即: ~/private 下的所有内容只能由当前用户读写, ~/public 所有人都可以读取。

于 2010-07-02T23:24:02.243 回答