Python - wsgi を使用してリモートの場所にファイルをアップロードする必要があります。リモートの場所とは、Python アプリケーションをホストするサーバーではなく、別のサーバーであることを意味します。
アプリケーションホストとまったく同じサーバーにファイルをアップロードしようとしました。そして成功です。
次のコードを使用して、
post = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ,keep_blank_values=True)
self.msg = str(post)
try:
fileitem = post['Filedata']
if fileitem.file:
filename = fileitem.filename.decode('utf8').replace('\\','/').split('/')[-1].strip()
if not filename:
raise Exception('No valid filename specified')
file_path = os.path.join(self.uploadpath, filename)
# Using with makes Python automatically close the file for you
counter = 0
with open(file_path, 'wb') as output_file:
while 1:
data = fileitem.file.read(1024)
# End of file
if not data:
break
output_file.write(data)
counter += 1
if counter == 100:
counter = 0
self.msg = "Uploaded Successfully !!!! "
except:
pass
ただし、これは、python アプリケーションがホストするローカルの場所用です。Pythonでファイルをリモートの場所にアップロードする方法をGoogleで検索します。しかし、私はそれに対する適切な解決策を見つけることができません。Python コードから scp を実行するように提案されているものもあります。
もっと..
A と B という 2 つのサーバーがあるとします。ファイル アップロード用の私の python-wsgi アプリケーションはサーバー A でホストされています。python-wsgi アプリケーションには、ユーザーがアップロードをクリックしたときにユーザーがファイルを選択するための Web フォームがあり、そのファイルが必要です。サーバーBにアップロードする(既知の場所)
Pythonを使用してリモートの場所にファイルをアップロードする方法またはライブラリを知っている人はいますか?
前もって感謝します。