【发布时间】:2017-01-03 18:01:26
【问题描述】:
在我的一个 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 Storage。
我的问题是:鉴于我的目标,我该如何更改在 models.py 中上传文件的方式?一个说明性的例子会很好。我想我需要更改FileField.upload_to,但我看到的所有示例都表明它只是定义一个本地文件系统路径。此外,我不想让用户正常上传内容,然后运行一个进程将文件上传到另一台服务器。直接做是我的偏好。有什么想法吗?
【问题讨论】:
-
一般来说,这些文件有多大?
-
@souldeux:在较小的一侧(例如
标签: python django file-upload django-models