ファイル間でデータを転送するために、Python/Django で rsync を実装しています。これが私のviews.pyです:
def upload_file(request):
'''This function produces the form which allows user to input session_name, their remote host name, username
and password of the server. User can either save, load or cancel the form. Load will execute couple Linux commands
that will list the files in their remote host and server.'''
if request.method == 'POST':
# session_name = request.POST['session']
url = request.POST['hostname']
username = request.POST['username']
global password
password = request.POST['password']
global source
source = str(username) + "@" + str(url)
command = subprocess.Popen(['sshpass', '-p', password, 'rsync', '--list-only', source],
stdout=subprocess.PIPE,
env={'RSYNC_PASSWORD': password}).communicate()[0]
command = command.split(' ')[-1]
result = subprocess.Popen(['ls', '/home/nfs/django/genelaytics/user'], stdout=subprocess.PIPE).communicate()[0].splitlines()
return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))
else:
pass
return render_to_response('form.html', {'form': 'form'}, context_instance=RequestContext(request))
フォームからリモートホスト、ユーザー名、パスワードを入力します。ただし、これらのパスワード、ユーザー名、またはサーバー名は正しくない可能性があります。それらが正しくなくても、このコードは私をthanks.htmlに変換しますが、ユーザー名、パスワード、ホスト名が正しくなかったため、それらのサーバー上のファイルはもちろんリストされていません。どうすれば検証できますか? 例外または間違ったユーザー名、パスワード、またはホスト名のエラーを発生させるにはどうすればよいですか?