gpt4 book ai didi

django - 如何外部化 Django 的媒体数据并将其提供给前端

转载 作者:行者123 更新时间:2023-12-05 06:42:49 24 4
gpt4 key购买 nike

我正在构建一个以 Django 作为后端的 restful 网络服务,目前我关心的是扩展。我想要这样的架构:http://www.djangobook.com/en/2.0/_images/scaling-4.png我可以在高负载下启动更多的 Django 实例。我的问题是我不知道如何外部化用户上传的内容(在 django 中称为媒体)。

我的基本想法是:Amazon S3、FTP 上传、SMT 或 NFS 挂载,或某种文件数据库,如 GridFS。

由于欧盟取消了 Save Harbor 协议(protocol),并且欧盟公司将用户数据放在非欧盟服务器上存在很多法律不确定性,因此我无法使用 Amazons S3 或任何非基于欧盟的存储解决方案。我看过 Minio,一个 S3 API 兼容的存储服务器。我只能获得使用最新(非稳定)版本的 minio 的帖子,而不是 gets。其他 S3 兼容服务器(如 CEPH)对于我的用例来说“太大”了。

我想将文件上传到 ftp 服务器并使用 nginx 从那里提供服务。问题是,django-storages ftp 功能似乎不稳定,django-resto 已被弃用且不再维护。

SMB/NFS 挂载不稳定,当挂载由于网络故障而无法使用时,django 会丢失要写入的数据。

GridFS 我无法开始工作,因为它使用非关系型的 mongodb,而 django 是关系型的。非关系型 django 分支维护得不好。在从 GridFS 提供文件方面,有 nginx-gridfs 和 mod_gridfs,两者都不再维护。

你对如何外部化 django 的媒体有什么想法吗?

最佳答案

好吧,我使用 Minio 库解决了我的问题。创建了特殊的存储类,它继承了 django 的 FileStorageClass。覆盖了 url() 和 save() 方法。将其移至外部 module .

关于django - 如何外部化 Django 的媒体数据并将其提供给前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35992215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com