我是使用Boto3的初学者,我想将文件从S3存储桶直接传输到SFTP服务器。
我的最终目标是为AWS Glue编写Python脚本。
我找到了一些文章,展示了如何将文件从SFTP传输到S3存储桶:
https://medium.com/better-programming/transfer-file-from-ftp-server-to-a-s3-bucket-using-python-7f9e51f44e35
不幸的是,我找不到任何相反的动作。您有什么建议/想法吗?
我的第一个错误尝试是在下面。
但是我要避免将文件下载到本地内存中,然后再将其移动到SFTP。
import pysftp
import boto3
# get clients
s3_gl = boto3.client('s3',aws_access_key_id='',aws_secret_access_key='')
# parameters
bucket_gl = ''
gl_data = ''
gl_script = ''
source_response = s3_gl.get_object(Bucket=bucket_gl,Key=gl_script+'file.csv')
print(source_response['Body'].read().decode('utf-8'))
#---------------------------------
srv = pysftp.Connection(host="",username="",password="")
with srv.cd('relevant folder in sftp'):
srv.put(source_response['Body'].read().decode('utf-8'))
# Closes the connection
srv.close()