В моем проекте Django пользователи загружают видеофайлы. Первоначально я загружал их непосредственно в хранилище Azure Blob (эквивалентно хранению на Amazon S3). То есть в models.py я имел:Загрузка содержимого Django FileField на удаленный сервер
class Video(models.Model):
video_file = models.FileField(upload_to=upload_path, storage=OverwriteStorage())
Где OverwriteStorage
переопределяет Storage
в django.core.files.storage
, и по существу, загружает файл на Azure.
Теперь мне нужно загрузить этот файл на отдельный сервер Linux (не тот, который служит для моего веб-приложения Django). На этом отдельном сервере я буду выполнять некоторые операции над видеофайлом (сжатие, изменение формата), а затем я загружу его в Azure Storage, как раньше.
Мой вопрос: учитывая мою цель, как изменить способ загрузки файла в models.py? Иллюстративный пример будет приятным. Я думаю, мне нужно будет изменить FileField.upload_to
, но все примеры, которые я видел, указывают, что это только определение пути локальной файловой системы. Более того, я не хочу, чтобы пользователь обычно загружал контент, а затем запускал процесс для загрузки файла на другой сервер. Выполнять это напрямую - это мое предпочтение. Есть идеи?
Вообще говоря, насколько велики эти файлы? – souldeux
@souldeux: на меньшей стороне (например, <20 МБ). –