pythonを使ってhttpやftpサービスを実現してデータを転送する方法
サーバー間のhttpデータ転送
python内蔵のhttpサービスを直接使用します。
wget ip:port/ファイル名
スピードレバーです。
ftpアップロードファイルを開く
ftpのpythonのサードパーティコンポーネントをインストールします。
もし私たちが自分で作ったスクリプトを使わずに、内蔵のスクリプトをそのまま使っています。
以上のpythonを使ってhttpとftpサービスを実現してデータを転送する方法は小編集が皆さんのすべての内容を共有することです。参考にしていただければ幸いです。どうぞよろしくお願いします。
python内蔵のhttpサービスを直接使用します。
python -m SimpleHTTPServer 8000
この時、命令を入力したディレクトリはhttpサービスを開始しました。8000はポートです。(指定しないなら、デフォルトは8000です。)他のマシンでこのディレクトリの下のファイルを取る必要があれば、目的のマシンで実行します。wget ip:port/ファイル名
スピードレバーです。
ftpアップロードファイルを開く
ftpのpythonのサードパーティコンポーネントをインストールします。
pip install pyftpdlib
起動スクリプトを作成
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import os
def main():
# Instantiate a dummy authorizer for managing 'virtual' users
authorizer = DummyAuthorizer()
# Define a new user having full r/w permissions and a read-only
# anonymous user
authorizer.add_user('user', '12345', '.', perm='elradfmwM')
authorizer.add_anonymous(os.getcwd())
# Instantiate FTP handler class
handler = FTPHandler
handler.authorizer = authorizer
# Define a customized banner (string returned when client connects)
handler.banner = "pyftpdlib based ftpd ready."
# Specify a masquerade address and the range of ports to use for
# passive connections. Decomment in case you're behind a NAT.
#handler.masquerade_address = '151.25.42.11'
#handler.passive_ports = range(60000, 65535)
# Instantiate FTP server class and listen on 0.0.0.0:2121
address = ('', 8888)
server = FTPServer(address, handler)
# set a limit for connections
server.max_cons = 256
server.max_cons_per_ip = 5
# start ftp server
server.serve_forever()
if __name__ == '__main__':
main()
8888は私が設定したポート番号です。userはユーザー名で、12345は私が指定したパスワードです。この時はスクリプトを実行するまではftpツールを使ってftpサーバに接続し、ファイルをアップロードできます。もし私たちが自分で作ったスクリプトを使わずに、内蔵のスクリプトをそのまま使っています。
python -m pyftpdlib -p 8888
この時、このftpサーバに接続するのはデフォルトのユーザーです。しかし、ファイルをアップロードすると、そのユーザーのアップロード権限がないことが分かります。以上のpythonを使ってhttpとftpサービスを実現してデータを転送する方法は小編集が皆さんのすべての内容を共有することです。参考にしていただければ幸いです。どうぞよろしくお願いします。