在webapp中存储用户上传文件的最佳方式

Eda*_*aor 27 database django upload file-upload

我正在创建一个Web应用程序(在Django中),它需要允许用户上传文件(特别是图像,稍后会为其他用户显示).我正在尝试了解存储这些上传文件的最佳方法.

从相关问题中,我看到有人建议给文件一个服务器生成的unqiue id,然后创建一个将id映射到原始文件名的DB表.

从安全性,效率或任何其他角度来看,这是存储用户上传文件的最佳方法吗?我应该为每个文件存储什么样的信息?

接受用户上传的文件是否还有其他最佳做法?(除了确保它们真的是图像并检查它们的大小,显然)?

编辑:关于我需要的更多信息.我正在谈论用户需要上传并嵌入他们创建的内容的图像文件.想象一下它就像StackOverflow的答案(或博客文章):有人上传了一张图片,只要有人看到答案,就必须存储和显示.

谢谢,
Edan
注意:有几个相关的问题,但我没有找到一个要求比较存储用户上传文件的方法.

man*_*ana 2

这是一个大问题。

与您的图片用例相关,这是图片服务器的域,它通常是应用程序的完整独立部分。它们处理图像的生命周期和调整大小(一张图片被存储/调整为不同的大小)。据我所知,这从来不是通过 SQL 中的 BLOB 列实现的,而是通过磁盘上简单的普通文件实现的。

另请查看(来自 facebook 的基础设施示例

一般来说,产品必须符合您的具体要求(文件大小、文件数量、负载)。在大多数情况下,您确实不想从头开始构建所有这些东西...尽管如果您的要求较低(只有少数用户很少上传文件),您可以将这些文件保存在磁盘上并将路径保存为参考您的其他数据(例如 RDBMS 中的列)。