Является ли Djangos FileField правильным выбором здесь? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть приложение, в котором в прошлом хранились двоичные данные:

class Blob(models.Model):
    content = models.BinaryField()
    name = models.CharField(max_length=10000, default='')
    content_type = models.CharField(max_length=1024, default='application/octet-stream')

Двоичные данные получают все больше и больше, и я хочу сохранить их на сервере хранения.

minio выглядит хорошо.

Как хранить данные, которые были в BinaryField (в БД) раньше, самым питоническим / django / простым способом?

Я вижу несколько способов решить это сейчас

V1: FileField

class Blob(models.Model):
    content = models.FileField()
    name = models.CharField(max_length=10000, default='')
    content_type = models.CharField(max_length=1024, default='application/octet-stream')

Это имеет тот недостаток, что удаление файлов должно быть сделано мной. См. Документы о FieldFile.delete ()

V2: содержание объекта

Я реализую это сам, используя библиотеку minio python.

В качестве имени файла я использую первичный ключ текущего BLOB-объекта.

Но и здесь: удаление данных на сервере хранения также необходимо осуществить.

V3: ...

Я думаю, есть и другие решения. Пожалуйста, скажите мне, если вы видите возможное решение.

...