FastDFS c語言 輕量級分布式系統
功能:文件存儲、文件訪問(文件上傳下載)、文件同步,解決大容量存儲和負載均衡的問題
架構: client、Tracker server 和 Storage server
文件索引:
一、Docker 安裝運行FastDFS
1. 獲取FastDFS鏡像:
遠端: sudo docker image pull delron/fastdfs
本地: sudo load -i fastdfs_docker.tar
2. 開啟tracker容器: sudo docker run -dit --name=tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
3. 開啟storage容器: sudo docker run -dit --name=storage --network=host -e TRACKER_SERVER=192.168.121.200:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
4.若無法重啟storage,可以刪除/var/fdfs/storage/data目錄下的 fdfs_storaged.pid,然后重新運行storage
二、 FastDFS的python客戶端
1. 進入fdfs_client-py-master.zip所在目錄下:
運行安裝: pip fdfs_client-py-master.zip # 文件下載地址待補充 pip install mutagen -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pip install requests -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
三、FastDFS客戶端的使用,需要有配置文件
1. 在utils文件下 新建fastdfs文件 並在其中添加 client.conf配置文件
2. 修改conf文件中:
base_path = FastDFS客戶端存放日志文件的目錄: base_path=/Users/meihao/Desktop
tracker_server = 運行tracker服務的機器ip:22122:tracker_server=tracker_server所在電腦ip:22122
3. shell測試fastdfs上傳圖片:
python manage.py shell from fdfs_client.client import Fdfs_client
#加載配置
client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf')
#上傳文件
ret = client.upload_by_filename('/home/ubuntu/Desktop/meinv.jpg')
"Remote file_id" : group1/M00/00/00/wKh5iF7z8miABdiGAACiSTpJlaQ999.jpg
4.django項目中添加配置
# FDFS需要的配置文件路徑(即: client.conf文件絕對路徑). FDFS_CLIENT_CONF = os.path.join(BASE_DIR, 'utils/fastdfs/client.conf') # FDFS中storage和tracker位置.端口規定死是8888, ip換成自己的ip FDFS_URL = 'http://192.168.121.136:8888/' # 指定django系統使用的文件存儲類: DEFAULT_FILE_STORAGE = 'meiduo_mall.utils.fastdfs.storage.FastDFSStorage'
fastdfs跨ip訪問 重啟storage
django 模型類中的文件字段
在django中定義模型類時, 文件字段可以使用FileField(其他)和ImageField(圖片)
django默認文件保存的過程
客戶端 ===請求上傳文件===> Django服務器(默認將文件保存到服務器本地)
推薦使用 MinIO文件服務,設置方便,易使用(https://docs.min.io/cn/minio-quickstart-guide.html)
