【问题标题】:Storing uploaded content on a website在网站上存储上传的内容
【发布时间】:2010-04-09 16:57:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: file-upload storage


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多