日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django二次开发对接FastDFS

發布時間:2023/12/20 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django二次开发对接FastDFS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.自定義文件存儲器類

  • 配置文件settings中加入如下配置
  • # 設置Django的文件存儲類、(名字固定) DEFAULT_FILE_STORAGE='utils.fdfs.storage.FDFSStorage'# 設置fdfs使用的client.conf文件路徑(名字自己定義) FDFS_CLIENT_CONF='./utils/fdfs/client.conf'# 設置fdfs存儲服務器上nginx的IP和端口號(名字自己定義) FDFS_URL='http://172.16.179.131:8888/'
  • 創建utils/fdfs 目錄
  • storage.py文件中自定義文件存儲類
  • FDFSStorage繼承Storage,并重寫_open、_save方法

    from django.core.files.storage import Storage from django.conf import settings from fdfs_client.client import Fdfs_clientclass FDFSStorage(Storage):'''fast dfs文件存儲類'''def __init__(self, client_conf=None, base_url=None):'''初始化'''if client_conf is None:client_conf = settings.FDFS_CLIENT_CONFself.client_conf = client_confif base_url is None:base_url = settings.FDFS_URLself.base_url = base_urldef _open(self, name, mode='rb'):'''打開文件時使用'''passdef _save(self, name, content):'''保存文件時使用'''# name:你選擇上傳文件的名字# content:包含你上傳文件內容的File對象# 創建一個Fdfs_client對象client = Fdfs_client(self.client_conf)# 上傳文件到fast dfs系統中res = client.upload_by_buffer(content.read())# dict# {# 'Group name': group_name,# 'Remote file_id': remote_file_id,# 'Status': 'Upload successed.',# 'Local file name': '',# 'Uploaded size': upload_size,# 'Storage IP': storage_ip# }if res.get('Status') != 'Upload successed.':# 上傳失敗raise Exception('上傳文件到fast dfs失敗')# 獲取返回的文件IDfilename = res.get('Remote file_id')return filenamedef exists(self, name):'''Django判斷文件名是否可用'''return Falsedef url(self, name):'''返回訪問文件的url路徑'''return self.base_url+name

    2.項目上傳圖片和使用圖片流程

    3.FastDFS結合Nginx優點

    1)海量存儲,存儲容量擴展方便
    2)文件內容重復
    3)結合Nginx提高網站提供圖片的效率

    總結

    以上是生活随笔為你收集整理的Django二次开发对接FastDFS的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。