存储上传图像的最佳实践

xpa*_*oob 3 lotus-notes lotus-domino xpages

在我的XPage应用程序中,用户可以上传图像.此时,每个图像都是缩略图,然后将拇指存储为单个NotesDocument的附件.在浏览器中,拇指是由他们的Notes附件URL"[UNID]/$ FILE/[ATTACHMENTNAME]"引用的.

对我而言,每张图像有一个文档似乎有点"过度杀伤",我想当许多图像文档在同一个数据库中时,这也会对性能产生影响,例如在为视图创建视图索引时到其他文件.因此,如果您只想在前端/浏览器中显示图像并且不需要存储有关它们的任何其他信息,我想询问是否有更好的方法来存储图像.

我想将拇指文件直接保存到文件系统上的文件夹中,然后通过http(s)访问该文件夹.然而,我不知道该怎么做.我还想过将拇指保存到WebContent文件夹,但我不知道使用这种方法的缺点.有没有人有这方面的经验或可以为我的问题提供另一种解决方案?

Pau*_*ers 6

我认为你不能将它们保存到NSF的WebContent文件夹中,这不是一个好主意.它会将图像保存在设计中,但图像应该是数据.

您可以将它们保存到\ domino\html下的文件夹中,但同样不建议这样做.如果要进行群集,则文件只能在一台服务器上; 他们没有任何安全保障,所以任何人都可以访问它们; 如果有任何腐败,你将不得不恢复; 保存它们可能需要更高的访问权限; 管理员可能不愿意让您查看它们,因此支持将更加困难.

我推荐的解决方案是将它们存储在数据库中.它可以复制,Domino可以相应地处理它.此外,您拥有开箱即用的所有相关安全性.在数据库/服务器上启用DAOS后,它们不会影响数据库的物理大小.

关键是他们是仅上传图像或图像+元数据还是其他数据.例如,如果它是个人文档,他们正在上传个人资料图片.如果是这种情况,我会将图像存储在该Person文档中.因为图像无法为视图编制索引,所以它不会影响视图索引,因此关注点会消失.

如果它们必须单独存储在文档中,并且您不希望它与其他数据位于同一数据库中,请创建一个单独的数据库并将其存储在那里.无论您是将其存储在单独的数据库中还是存储在文件系统中,都需要在它们之间存储关系,因此没有理由避免使用该方法.另外,您仍然可以使用相同的安全性,使用DAOS等.

此外,您可能会找到更多支持,如何执行此操作,如何对其进行故障排除等,因为很少有应用程序或开发人员可能采用在Domino设计时存储在文件系统上的方法,并且具有在文档中存储附件的悠久历史(例如,自从我15年前开始使用Domino以来一直存在的文档库模板).