- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的一个Django项目中,用户上传视频文件。最初,我将它们直接上传到 Azure Blob 存储(相当于将其存储在 Amazon S3 上)。 IE。在 models.py 中我有:
class Video(models.Model):
video_file = models.FileField(upload_to=upload_path, storage=OverwriteStorage())
OverwriteStorage
覆盖了 django.core.files.storage
中的 Storage
,实际上是将文件上传到 Azure。
现在我需要将此文件上传到一个单独的 Linux 服务器(与为我的 Django Web 应用程序提供服务的服务器不同)。在这个单独的服务器中,我将对视频文件执行一些操作(压缩、格式更改),然后像以前一样将其上传到 Azure 存储。
我的问题是:鉴于我的目标,我该如何更改我在 models.py 中上传文件的方式?一个说明性的例子会很好。我想我需要更改 FileField.upload_to
,但我看到的所有示例都表明它只是定义本地文件系统路径。而且,我不想让用户正常上传内容,然后运行一个进程将文件上传到另一台服务器。直接做是我的偏好。有什么想法吗?
最佳答案
我已经用 Amazon 的 S3 解决了类似的问题,但概念应该是相同的。
首先,我使用 django-storages
,默认情况下,将我的媒体文件上传到 S3(django-storages
也支持 Azure)。然后,我的团队在我们的 Django Web 服务器上从我们偶尔需要写入用户上传的目标服务器上设置了一个 NFS 共享挂载。然后我们简单地覆盖 django-storages
,方法是使用“upload_to”到从其他服务器挂载的本地路径。
此答案有一个快速示例,说明如何从一台服务器到另一台服务器设置 NFS 共享:https://superuser.com/questions/300662/how-to-mount-a-folder-from-a-linux-machine-on-another-linux-machine
有几种方法可以给猫剥皮,但对我们的团队来说,这似乎是最简单的方法。祝你好运!
关于python - 将 Django FileField 的内容上传到远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176878/
我是一名优秀的程序员,十分优秀!