我在使用 paramiko 的 putfo() 传递文件对象时收到错误。
属性错误:“字节”对象没有属性“读取”
这是我的 putfo() 的样子
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=host, port=port, username=username,password=password, look_for_keys=False)
ftp = ssh_client.open_sftp()
ftp.putfo(file_obj, remotepath=file_name)
file_obj
使用 shareplum 的 get_file() 下载到内存
我不知道我应该在这里尝试什么来解决这个问题。
putfo
需要文件或类似文件的对象。错误消息表明您正在获取原始字节而不是文件 io(原始字节没有 read
方法,但文件 io 对象有)。
要解决这个问题,请使用
io.BytesIO
包装返回的字节
from io import BytesIO
ftp.putfo(BytesIO(file_obj), remotepath=file_name)