使用storbinary将S3文件放入FTP服务器,而不使用Lambda或Glue下载到本地临时文件



我正在尝试使用Glue Python外壳将S3文件放到FTP服务器上。下面给出的是代码。从S3获取文件后,我卡住了。尝试了几种storbinary的方法,但都没有成功。如果我们尝试在本地使用Python,这很容易,但由于这是来自Glue/Lambda,所以文件处理部分有点棘手。

import ftplib
import boto3
from io import BytesIO,StringIO
ftp = ftplib.FTP()
ftp.connect('xxx',yyy)
ftp.login('uname','passwd')
ftp.cwd('path')
s3 = boto3.client('s3')
file = s3.get_object(Bucket='my_bucket',Key='myfolder/myfile.txt')
data = file['Body'].read()
with open(data,"rb") as f:
ftp.storbinary('STOR test12.txt',f)

file = s3.get_object(Bucket='my_bucket',Key='myfolder/myfile.txt')行之后,对接下来的步骤有点困惑。任何关于如何做到这一点的帮助是感激的。

您需要使用BytesIO/StringIO类文件对象:

b = BytesIO(file['Body'].read())
ftp.storbinary('STOR test12.txt', b)

(未测试,只是一个概念)

最新更新