在网站上存储上传的内容

时间:2010-04-09 16:57:50

标签: file-upload storage

在过去的5年中,我存储上传文件(图像,视频,文档等)的典型解决方案是将所有内容放入“上传”文件夹并为其命名。

我正在寻求改进我存储上传内容的方法,我只是想知道其他方法是使用/首选的。

我考虑将每个项目存储在自己的文件夹中(文件夹名称是数据库中的Id),因此我可以保留上传的文件名。我还考虑将所有媒体上传到一个锁定的文件夹,然后使用文件处理程序,您在查询字符串中传递要下载的文件的Id,然后它将读取文件并将字节发送给用户。这对于检查访问权限和限制用户带宽非常方便。

2 个答案:

答案 0 :(得分:0)

我认为文件处理程序方法是处理文件的好方法,只要您知道如何在您选择的平台上充分利用资源。如果您不知道自己在做什么,可以做一些愚蠢的事情,例如将1GB文件读入内存。

在将文件存储在磁盘上方面,问题是访问模式的数量,访问模式以及使用的操作系统/平台。对于某些人来说,将文件存储在数据库中甚至是有利的。

除非您正在进行某种类型的版本控制,否则每次上传创建一个单独的目录似乎有些过分。我个人的偏好是重命名上传的文件并存储原始名称。当用户下载时,我再次附加原始名称。

答案 1 :(得分:0)

考虑一个虚拟文件系统,例如SolFS。以下是它如何解决您的任务:

如果您有回访者,则可以为每个访问者设置一个单独的容器(例如,通过访问者登录名称)。这种方法的一个好处是您可以使用访问者的密码加密容器。

如果您有许多可能是一次性的访问者,您可以拥有一个或多个容器,其中的文件按上传日期分组。

虚拟文件系统允许您将原始文件名保存为实际文件名,或保存为存储文件的元数据。

接下来,您可以压缩存储在容器中的数据。