Djangos FileField在这里是正确的选择吗?

时间:2019-03-26 13:01:32

标签: django filefield

过去我有一个存储二进制数据的应用程序:

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看起来不错。

如何以最pythonic / django / simple的方式存储之前在BinaryField(在数据库中)中的数据?

我现在看到几种解决方法

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 lib来实现。

我将当前Blob的主键用作文件名。

但是在这里再次:删除存储服务器中的数据也需要实现。

V3:...

我想还有更多解决方案。请告诉我您是否看到可行的解决方案。

0 个答案:

没有答案