connect_timeout没有配置

最近摸索着学习Django搭配fastDFS使用,就遇到了如题的问题,报错了第一反应当然是继续网上找资料排查问题,只是问题解决方式都没有对上,有说版本问题,有说绝对路径问题,我都一一尝试了无解,没办法就自己打断点调试了,跟进去才发现是配置文件没有配置connect_timeout,没办法刚刚学不敢造次怎么教怎么复制,原来的配置文件就没有这一项,后面自己加上就好了,不过就发现了接下来要说的版本问题。

 下载fdfs_client-py-master.zip

我下载的zip这个版本安装后是fdfs_client_py-1.2.6-py3.8,该版本创建客户端时底层会自动调用get_tracker_conf把配置文件字符串形式地址读取并解析文件获得trackers字典
在这里插入图片描述
读取配置文件使用相对或绝对路径都可以,建议使用相对路径,方便项目迁移,网上说的使用绝对路径也许是其他我没遇到的问题吧

在这里插入图片描述

 直接pip install py3Fdfs

我没有指定版本直接下的版本是py3Fdfs-2.2.0,源码底层没有调用get_tracker_conf,所以需要导包然后手动调用get_tracker_conf把配置文件字符串形式地址读取并解析文件获得trackers字典,再把字典传递给Fdfs_client返回客户端,同样的配置文件必须有配置文件必须有connect_timeout键
在这里插入图片描述

from fdfs_client.client import Fdfs_client, get_tracker_conf
# 把get_tracker_conf导进来主动调用
trackers = get_tracker_conf('../../utils/fastdfs/client.conf')
# 传递给Fdfs_client创建客户端
client = Fdfs_client(trackers)
# 结果是bytes类型
result = client.upload_by_filename("./logo.jpg")
file_id=result.get('Remote file_id')
url='http://'+trackers.get('host_tuple')[0]+':8888/'+file_id.decode()

这里需要强调一下客户端上传图片返回的结果是bytes类型,需要decode一下

其他问题暂时没有遇上,就这样了,大家加油