相关疑难解决方法(0)

使用 Boto 3 将文件从 AWS S3 传输到 SFTP

我是使用 Boto3 的初学者,我想直接将文件从 S3 存储桶传输到 SFTP 服务器。

我的最终目标是为 AWS Glue 编写 Python 脚本。

我找到了一些文章,其中展示了如何将文件从 SFTP 传输到 S3 存储桶:https :
//medium.com/better-programming/transfer-file-from-ftp-server-to-a-s3-bucket-使用-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()
Run Code Online (Sandbox Code Playgroud)

python sftp amazon-s3 amazon-web-services boto3

6
推荐指数
1
解决办法
8380
查看次数

读取用 Python Paramiko SFTPClient.open 方法打开的文件很慢

我正在尝试远程读取 netcdf 文件。
我使用 Paramiko 包来读取我的文件,如下所示:

import paramiko
from netCDF4 import Dataset

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=’hostname’, username=’usrname’, password=’mypassword’)

sftp_client = client.open_sftp()
ncfile = sftp_client.open('mynetCDFfile')
b_ncfile = ncfile.read()    # ****

nc = Dataset('test.nc', memory=b_ncfile)
Run Code Online (Sandbox Code Playgroud)

但是运行速度ncfile.read()非常慢。

所以我的问题是:有没有其他方法可以远程读取 netcdf 文件,或者有什么方法可以加快速度paramiko.sftp_file.SFTPFile.read()

python ssh sftp paramiko netcdf

4
推荐指数
1
解决办法
4862
查看次数

标签 统计

python ×2

sftp ×2

amazon-s3 ×1

amazon-web-services ×1

boto3 ×1

netcdf ×1

paramiko ×1

ssh ×1