0

我正在尝试将文档存储模块添加到我们的 AR 软件中。

我将提示用户将文档/图像附加到他们的帐户。然后我会将这个文件的副本放入我们的文件夹中,以便我们可以引用它,而不必依赖他们将文件保存在原始位置。该系统不使用数据库,而是使用多个平面文件。

一旦将这些文件附加到我们的系统,我正在寻找有关如何处理这些文件的指导。

我应该如何存储这些附件?

我在想我可以将文件复制到一个子目录,然后将其重命名为自动生成的数字,这样我们就没有重复了。这样做的坏处是文件夹的内容会变得相当大。

有人有更好的方法吗?我应该创建目录并存储它们...?

4

2 回答 2

1

该系统不使用数据库,而是使用多个平面文件。

这听起来像是一个多用户系统。您如何处理并发访问问题?您对此的回答将极大地影响我们在这里告诉您的任何内容。


由于您没有对其他文件做任何特殊处理来处理并发访问,我要做的是在您的主数据文件夹下添加一个新文件夹,专门用于文档存储,并在那里写入您的用户文件。此外,您需要担心名称冲突。为了解决这个问题,我会通过将日期和用户名附加到原始文件名并获取该字符串的 md5 或 sha1 哈希来命名每个文件。然后将文件添加到您的其他数据文件,以将哈希值映射到用户的原始文件名。

于 2009-07-07T21:55:47.477 回答
0

鉴于您的限制(并假设总用户数量有限),我也倾向于使用“文档”文件夹 - 加上每个用户的子文件夹。每个文件名都应包含日期以防止冲突。随着时间的推移,您将不得不通过管理方式或使用用户界面处理删除旧文件或过时文件。考虑为每个用户设置最大文件数或最大字节数。您还需要处理已离职用户的文件。

于 2009-07-09T20:35:30.230 回答