我正在开发一个项目,要求我们通过SFTP将vile上传到远程服务器,我们遇到了麻烦。我们尝试了这个youtube guide,但我们遇到了一些问题。
当我们运行脚本时,我们得到一个“没有这样的文件”错误,我们确信文件存在,并且我们已经为python脚本提供了文件的正确名称和位置。
这是我们现在拥有的脚本:
import pysftp as sftp
def sftpTry():
try:
s = sftp.Connection(host='babbage.cs.missouri.edu', username ='<username>', password = '<password>')
remotepath = '~it3001s14grp1/videos/newVideo/new.avi'
#localpath = '/etc/motion/capture/hello.txt'
localpath = '/etc/motion/capture/06--2014-05-15---16-16-25.avi'
s.put(localpath, remotepath)
s.close()
except Exception, e:
print str(e)
sftpTry();
答案 0 :(得分:1)
您应该使用正斜杠&#34; /&#34;开始您的远程路径。另外,检查您在remotepath中指定的目录。当您登录服务器时(例如使用ssh),您应该尝试在目录中执行pwd
。应该完全指定远程路径。
虽然远程路径中确实有文件名,但如果仅指定文件夹的名称,则会引发错误。
另一个提示是使用getpass
而不是硬编码密码:
passwd = getpass.getpass()
s = sftp.Connection(host='<host>', username = '<username>', password = passwd)