带有django-mssql的SQL Server文件流

时间:2015-07-28 11:23:15

标签: sql-server django django-models sqlfilestream django-mssql

我想使用SQL Server Filestream功能来存储Django应用程序中的文件(主要是大图像)。 目前我使用django-mssql作为我的Django项目的数据库后端。我不认为该软件包中存在任何链接到SQL Server中的Filestream列的模型字段。

使用Django的文件流功能的最佳方法是什么?有现成的套餐吗?或者我是否需要实现自己的自定义模型字段,继承自Django的内置字段(FileField或BinaryField)?

谢谢!

1 个答案:

答案 0 :(得分:1)

为了防止其他人对使用SQL Server文件流功能感兴趣,并在此结束,我开始使用自定义django字段来支持文件流:FileStreamDataField映射到varbinary(max) FILESTREAM类型和一个FileStreamField,它是一个包装win32 Streaming API的虚拟字段。

import uuid

from django.db import models
from sql_filestream import FileStreamDataField, FileStreamField, UUIDField

class DocumentModel(models.Model):
    doc_id = UUIDField(default=uuid.uuid4)
    doc_content = FileStreamDataField(identifier_field='doc_id', null=True, blank=True)
    document = FileStreamField('doc_id', 'doc_content') 

您可以在此处找到示例:https://github.com/rparent/django-mssql-filestream 它适用于我的用例,但肯定是不完整的。 欢迎捐款!