自定义文件存储系统, 前提是使用Docker安装和运行FastDFS.
1.⾃自定义⽂文件存储系统的类
from django.core.files.storage import Storage
class FastDFSStorage(Storage):
...
2. 内部实现
class FastDFSStorage(Storage):
"""⾃自定义Django⽂文件存储系统"""
def __init__(self, client_conf=None, base_url=None):
self.client_conf = client_conf or settings.FDFS_CLIENT_CONF
self.base_url = base_url or settings.FDFS_BASE_URL
def _open(self, name, mode='rb'):
"""打开⽂文件时调⽤用的,⽬目前⽤用不不到,但是必须实现,所以pass"""
pass
def _save(self, name, content):
"""
保存⽂文件时调⽤用的
:param name: 要保存的⽂文件名字
:param content: 要保存的⽂文件内容
:return: ⽂文件在fdfs唯⼀一标识(file_id)
"""
client = Fdfs_client(self.client_conf)
ret = client.upload_by_buffer(c