使用 Python 嘗試使用 pysftp 模塊從 SFTP 下載檔案并將檔案直接保存在 S3 存盤桶中。我不應該將檔案保存在本地。它們應該直接保存到 S3 中。我找不到將檔案直接放入 s3 的選項。
我正在使用私有 SSH 密鑰而不是密碼來連接 SFTP。機密存盤在 AWS 機密管理器中。請幫忙。
import boto3
import json
def get_secret():
client = boto3.client("secretsmanager")
secret_name = "arn:name"
region_name = "region"
response = client.get_secret_value(SecretId=secret_name)
secret_dict = json.loads(response['SecretString'])
return secret_dict
sftp_secret = get_secret()
host=sftp_secret["host"]
username=sftp_secret["username"]
private_key=sftp_secret["private_key"]
with pysftp.Connection(host=host, username=username, private_key=private_key) as sftp:
print("connection established")
sftp.cwd('/')
list_dir = sftp.listdir_attr()
sftp.get(remote_path, local_path)
uj5u.com熱心網友回復:
首先,不要使用 pysftp,這是一個死專案。參見pysftp vs. Paramiko。
改用 Paramiko:使用 Paramiko
將檔案從 SFTP 傳輸到 S3
而且即使您決定堅持使用 pysftp,解決方案也基本相同。pysftpConnection.open的作業方式與Paramiko相同SFTPClient.open。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463946.html
