Django:存储用户在 Django 项目上共享的上传文件(pdf、文档)的最佳位置在哪里?

Django: Where is the best place to store uploaded file(pdfs, docs) that a user share on a django project?

我目前正在做一个 Django 项目来制作一个文件共享网站。我确实知道 Django 模型无法在其字段中保存文件,只能存储引用它的字符串,并且该文件保存在我在 MEDIA_ROOT 设置中设置的任何文件夹中,我发现这不是很安全和有效.那么我要把这些上传的文件存放在哪里呢?还是放在MEDIA_ROOT设置的文件夹里够安全?

我现在无法给出任何进展,因为它仍然在我脑海中,我也一直在寻找,但无处可寻(或者我尝试不够)。

那么存储这些文件的最佳做法是什么?

关于MEDIA_ROOT,使用它很好,如果需要,您可以通过修改views/urls来增加安全性。然而,在生产中,通常媒体文件是在云端提供的,您应该编写自定义变量来管理这些文件。

您可以选择不同的选项,我个人使用 Amazon S3,您可以在其中打开一个存储桶并将所有文件存储在其中。上传文件时,它们存储在那里,在您的模型中,您将存储桶内的路径存储在那里,当您想要下载它时,您将获得您的存储桶根目录(即 www.amazon.com/s3/whatever ) + 您存储在数据库中的路径。

这种方式不是使用 MEDIA_ROOT,而是使用 AWS_PRIVATE_ROOTAWS_PUBLIC_ROOT 之类的东西并在那里管理文件。综上所述,整个过程比较相似,找个地方存储文件,存储它们,稍后在您的网站中添加对文件的引用。

祝你好运,希望对你有所帮助。