fastDFS的安裝
網上有介紹
下面運用在天天生鮮專案上 感受一下
配置資訊
# 配置Django自定義的存盤系統 #配置FdfsStorage路徑utils.fastdfs.storage下 DEFAULT_FILE_STORAGE = 'utils.fastdfs.storage.FdfsStorage' # FastFDS使用的配置資訊 CLIENT_CONF = os.path.join(BASE_DIR, 'utils/fastdfs/client.conf') #加入客戶端組態檔路徑 SERVER_IP = "http://192.168.154.134:8888/" # 存盤系統的ip

創建了一個包
cp /etc/fdfs/client.conf 到這里
storage.py
#Django必須能夠不帶任何引數來實體化你的儲存類, 這意味著任何設定都應該從django.conf.settings中獲取 from django.conf import settings #自定義儲存類必須是django.core.files.storage.Storage的子類 from django.core.files.storage import Storage # fdfs_client.client 是通過 pip install fdfs_client-py-master.zip 安裝的客戶端 from fdfs_client.client import Fdfs_client class FdfsStorage(Storage): def __init__(self,client=None,server_ip=None): """初始化""" if client is None: client = settings.CLIENT_CONF self.client = client if server_ip is None: server_ip = settings.SERVER_IP self.server_ip = server_ip def open(self, name, mode='rb'): #這是儲存類用于打開檔案(例如:圖片的原始命名 name)的實際工具,它必須回傳File物件 '''open(name, mode='rb')[source] 通過提供的name.打開檔案, 注意雖然回傳的檔案確保為File物件,但可能實際上是它的子類, 在遠程檔案儲存的情況下,這意味著讀寫操作會非常慢,所以警告一下,''' return False def save(self, name, content, max_length=None): #客戶端 client = Fdfs_client(self.client) #組態檔 #獲取檔案內容 file_data = https://www.cnblogs.com/Py-beginner/archive/2020/10/27/content.read() #檔案讀取 try: result = client.upload_by_buffer(file_data) # 上傳緩沖檔案內容 except Exception as e: result = None if result['Status'] == 'Upload successed.': #獲取檔案名 filename = result['Remote file_id']return filename else: raise Exception('cccccccccccccccccccccc') def exists(self, name): #name為 = save()的回傳值:filename # 由于Djnago不存盤圖片,所以永遠回傳Fasle,直接保存到FastFDS #官方解釋: ''' exists(name)[source] 如果提供的名稱所參考的檔案在檔案系統中存在,則回傳True,否則如果這個名稱可用于新檔案,回傳False.''' return False def url(self, name): #獲取圖片路徑 '''url(name)[source] 回傳URL,通過它可以訪問到name所參考的檔案, 對于不支持通過URL訪問的儲存系統,拋出NotImplementedError例外,''' return self.server_ip+name
我的出現了問題 整了好久這個問題 第一次練習這個專案沒能解決 時隔多月再次練習 這次必定要解決它

如果修改資料 不修改 圖片 提示報錯
filename = result['Remote file_id'] + '.jpg'
return self.server_ip+name.split('.')[0]
然后就解決啦
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/193884.html
標籤:其他
