gpt4 book ai didi

python-2.7 - Paramiko 错误: size mismatch in put

转载 作者:行者123 更新时间:2023-12-03 06:50:07 25 4
gpt4 key购买 nike

我正在尝试将一些文件从本地 Windows 目录复制到远程 Linux 目录。

它适用于具有相同扩展名的文件。但是当文件夹中有不同的扩展名时就会中断。

代码:

import os
import glob
import paramiko
glob_pattern='*.*'
try:
ssh.connect(host,username=user,password=pwd)
ftp = ssh.open_sftp()

try:
ftp.mkdir(dir_remote)
command=dir_remote+'/setuplog'
ftp.mkdir(command)
commande=dir_remote+'/emsfolder'
ftp.mkdir(commande)

try:
for fname in glob.glob(uploadfolder + os.sep + glob_pattern):
local_file = os.path.join(uploadfolder, fname)
remote_file = dir_remote + '/' + os.path.basename(local_file)
ftp.put(local_file,remote_file)
ftp.chmod(remote_file ,0777)
except IOError, e:
print (e)


except IOError, e:
print (e)


except paramiko.AuthenticationException, ae:
print (ae)
finally:
ssh.close()

我试图只传输 2 个文件(1.sh 和 2.pl)。当 1.sh 被复制时,在远程服务器上创建了 0 字节 2.pl 文件,然后我收到错误:

size mismatch in put!  0 != 2200

我正在使用:

   python 2.7, Paramiko - 1.15.2

请帮忙。

最佳答案

我怀疑这与文件夹中的不同扩展名有关。 paramiko 的 sftp_client.py:putfo() 中的代码在末尾读取:

    s = self.stat(remotepath)
if s.st_size != size:
raise IOError('size mismatch in put! %d != %d' % (s.st_size, size))

我遇到了类似的问题,结果发现远程文件系统已满,因此 paramiko 无法写入/放置文件。

顺便说一句,您可以使用os.path.join(uploadfolder, glob_pattern),而不是uploadfolder + os.sep + glob_pattern(和类似的)

关于python-2.7 - Paramiko 错误: size mismatch in put,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29781594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com