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



我目前正在做一个Django项目,制作一个文件共享网站。我知道Django模型不能在它们的字段中保存文件,只能存储引用它的字符串,而且文件保存在我在MEDIA_ROOT设置中设置的任何文件夹中,我发现这不是很安全和有效。那么,我将这些上传的文件存储在哪里呢?或者将其存储在MEDIA_ROOT设置的文件夹中是否足够安全?

我现在无法给出任何进展,因为它仍然在我的脑海中,我也一直在寻找,但却找不到答案(或者可能我做得不够(。

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

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

你可以选择不同的选项,我个人使用AmazonS3,在那里你可以打开一个bucket并将所有文件存储在那里。当文件上传时,它们存储在那里,在你的模型中,你将路径存储在桶中,当你想下载它时,你会得到你的桶根(即www.amazon.com/s3/whatevery(+你存储在数据库中的路径。

通过这种方式,您可以使用类似AWS_PRIVATE_ROOTAWS_PUBLIC_ROOT的东西来管理那里的文件,而不是使用MEDIA_ROOT。话虽如此,整个过程相对相似,找个地方存储文件,存储它们,稍后在你的网站上添加对文件的引用。

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

最新更新