我正在用python创建一个从ftps站点到S3存储桶的数据传输
for ftp_file in files_to_upload:
ftp_file_obj = self.ftp_client.retrbinary('RETR '+ftp_file,open(ftp_file,'wb').write)
print(ftp_file_obj)
if self.s3_upload(
ftp_file_obj, ftp_file):
print('file uploaded to s3')
files_to_move.append(ftp_file)
我必须遍历FTP目录并将这些文件加载到内存中。然后,我需要将该文件放入内存并将其推送到S3。我得到Fileobj必须实现读取错误,但我不知道为什么
我确实有代码打印ftp_file_obj
,而且对我来说很奇怪,它是成功传输的字符串打印输出。我一定是用错了retrbinary
,或者文件存储不正确。是的,虽然我确实希望它存储在内存中,但我在本例中使用write来确保文件看起来像预期的那样
好吧,算了。将其流式传输到r中,r是BytesIO(),r.write作为retrbinary上的回调。然后,使用r.seek(0)将光标移动到数据块的开头。然后上传。我不建议使用ftplib库,除非您必须使用它。我不得不这么做,因为我必须使用FTP_TLS,而paramiko库不支持TLS。我希望谷歌的同事会觉得这很有用
相关问题 更多 >
编程相关推荐