在搭建fastdfs文件系统的时候遇到了点问题,在测试上传文件数据流的时候,需要Python来获取本地文件的二进制流
1 from fdfs_client.client importFdfs_client2
3 fdfs = Fdfs_client('utils/fastdfs/client.conf')4 f = open('statics/a.png', 'rb')5 ret = fdfs.upload_by_buffer(f.read(), 'png')
很少操作文件,但是记得这样是可以获得文件二进制格式数据的,不过fdfs却报错说参数不能为空
后来找到原因,因为开始我忘了打开docker的fastfds服务了,导致第一次读取上传操作失败,然后打开服务后就执行了第二次上传.
文件读取操作read()会在读取文件后把光标放在文件末尾,再之后读取将永远为空(除非重新打开重新读)
所以重新执行了一遍open(),就可以正常获取上传了.