抱歉,我的英语不好,但我对 aioftp 客户端有疑问。 我尝试使用 ftp 将文件从我的服务器发送到另一台服务器。 这是我的代码:
async with aioftp.ClientSession(host, FTP_PORT, login, password) as ftp:
async with ftp.path_io.open(file_path, mode="rb") as file_in, ftp.upload_stream(new_file_name) as stream:
async for block in file_in.iter_by_block(8192):
await stream.write(block)
登录成功,然后立即退出: 图片
然后我尝试使用 ftplib 库:
with FTP(host) as ftp:
ftp.login(user,password) with open(file_path, "rb") as f:
ftp.storbinary('STOR '+new_file_name, f)
它工作正常,但不是异步的。请帮助我,我需要用异步方法发送文件。
使用wireshark调试:
aiofpt:
ftplib:
我的朋友。 下面是示例实现
async def send_file_async(self, path, file):
file_io = io.BytesIO(file)
async with aioftp.Client.context(self.ftp_host, user=self.ftp_user, password=self.ftp_password) as client:
async with client.upload_stream(path, offset=0) as stream:
await stream.write(file_io.read())
其中@file是字节,@path是ftp服务器上的新名称文件夹/文件