File upload 在网站上存储上传的内容

File upload 在网站上存储上传的内容,file-upload,storage,File Upload,Storage,在过去的5年中,我存储上传文件(图像、视频、文档等)的典型解决方案是将所有内容放入“上传”文件夹,并给它一个唯一的名称 我希望改进我存储上传内容的方法,我只是想知道还有哪些方法被使用/首选 我考虑将每个项目存储在它们自己的文件夹中(文件夹名称是数据库中的Id),以便保留上载的文件名。我还考虑过将所有媒体上传到一个锁定的文件夹中,然后使用文件处理程序,将要下载的文件的Id传递到querystring中,然后它将读取文件并将字节发送给用户。这对于检查访问和限制用户带宽非常方便。我认为文件处理程序方法

在过去的5年中,我存储上传文件(图像、视频、文档等)的典型解决方案是将所有内容放入“上传”文件夹,并给它一个唯一的名称

我希望改进我存储上传内容的方法,我只是想知道还有哪些方法被使用/首选


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

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

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


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

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

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

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

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

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