分类

链接

2026 年 3 月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > AI, DevOps, k8s, Python, 云计算, 人工智能 > 正文
共享办公室出租
在腾讯云函数中使用python打SFTP问题
AI, DevOps, k8s, Python, 云计算, 人工智能 暂无评论 阅读(3)

首先,云函数是使用提centos7,很老的版本。本文底解决了腾讯云函数中所有关于 Python 依赖、GLIBC 版本和 C 扩展的兼容性深坑。现在 paramiko 已经可以正常加载运行了。

 

#注意确认Python3的正确路径
# 1. 强制安装 cffi
/var/lang/python39/bin/python3 -m pip install --upgrade --no-cache-dir --target . cffi==1.15.1

# 2. 安装其余依赖(锁死版本)
/var/lang/python39/bin/python3 -m pip install --upgrade --no-cache-dir --target . cryptography==3.3.2 bcrypt==3.1.7 PyNaCl==1.4.0 paramiko==2.11.0

 

 

# -*- coding: utf8 -*-
import platform
import os
import sys
import json
 
  

print(">insert sys path...")
# 必须把当前目录插到路径最前面
current_dir = os.path.dirname(os.path.abspath(__file__))
if current_dir not in sys.path:
    sys.path.insert(0, current_dir)

import json

print(">import paramiko")
import paramiko

print(">start.....")
def main_handler(event, context):

    print(">main_handler....")
    host = "sftp.xxxx.com"
    port = 22
    username = "sftp-xxxxxx"
    password = "xxxxxx" # 请确保密码正确

    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    sftp = None
    try:
        # 增加 banner_timeout 防止握手超时
        ssh.connect(host, port, username, password, timeout=15, banner_timeout=20)
        sftp = ssh.open_sftp()
        
        file_list = sftp.listdir('.')
        
        return {
            "isBase64Encoded": False,
            "statusCode": 200,
            "headers": {"Content-Type": "application/json"},
            "body": json.dumps({"status": "success", "files": file_list})
        }
    except Exception as e:
        return {
            "isBase64Encoded": False,
            "statusCode": 500,
            "headers": {"Content-Type": "application/json"},
            "body": json.dumps({"status": "error", "message": str(e)})
        }
    finally:
        if sftp: sftp.close()
        ssh.close()

 

 

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:在腾讯云函数中使用python打SFTP问题 | Bruce's Blog

发表评论

留言无头像?