web-dev-qa-db-ja.com

単純なファイル転送に適した軽量のHTTPまたはFTPサーバーはどれですか。

この質問は、 信頼されていないコンピューターにファイルをコピーする方法 のフォローアップです。この目的専用のアプリはないようです。現在、代替としてhttpまたはftpサーバーを検索しています。より具体的には、コンピュータ間の簡単な1回限りのファイル転送に使用できる軽量サーバーを探しています。つまり、従来のWebサーバーとしてではなく、あるコンピューターから別のコンピューターにファイルを取得するためのrsync/scpの代替として機能する必要があります。さらに、それは:

  • ユーザー空間で実行
  • 構成するのは簡単です(つまり、構成ファイルがなく、すべてコマンドラインで実行可能)
  • ユーザー名/パスワードをサポート
  • ダウンロードの継続をサポート
  • ディレクトリ全体ではなく単一ファイルのエクスポートをサポートする

前の質問へのdbrの回答 は間近に迫っていますが、もちろん、多くの便利な機能が欠けているアドホックハックにすぎません。

25
Grumbel

私はよくこの簡単なPythonハックを使用して、HTTP経由でディレクトリを提供します。

python -m SimpleHTTPServer &

現在のディレクトリを提供します。

デフォルトでは、ポート8000​​にバインドします。

別のポートを選択するには:

python -m SimpleHTTPServer 9090 &

* nixで1024未満のポートを選択すると、root権限が必要になる場合があります。そうでない場合、bind()は失敗します。

31
geek

SOで誰かが Woof を指摘しました。pythonの最小限のhttpdは、そのような用途のために最適化されたインターフェイスを備えています。実際にはすべての要件を満たしていますが、接続回数を指定できるようにすることで、「準備ができていますか?サーバーを起動しています」というアプローチを使用して転送を保護できます。

1つの接続でポート8080でthisfileをダウンロードできるようにするには、次のコマンドを実行します。

$ woof thisfile

とても簡単です。

これが 乱用されたオリジナル です。気に入ったら、ネイトに投票してください。

Ubuntuリポジトリから利用できる webfs を試すことができます。

Webfs(別名webfsd)は、純粋に静的なコンテンツのためのシンプルなHTTPサーバーです。たとえば、HTTPを介してFTPサーバーのコンテンツを提供するために使用できます。また、最初に構成ファイルを編集せずに、数秒でhttpdサーバーを起動することにより、一部のファイルをすばやくエクスポートするために使用することもできます。

別のオプションは HFS(Http File Server) で、Windowsアプリで Wineでうまく機能します

HFS(Http File Server)は、ファイルを送受信できるファイル共有ソフトウェアです。この共有を数人の友達に制限するか、全世界に公開することができます。 HFSは、ネットワークがないため、従来のファイル共有とは異なります。 [...]これは実際にはWebサーバーであるため、友達はWebブラウザーを使用してWebサイトからダウンロードしているかのようにファイルをダウンロードできます。

3
user4358

代替手段を用意していない場合は無視してください。ただし、設定なしでHTTPサーバーをインストールすることを希望しているという事実から、ファイルの転送を実行する方法よりも、ファイルの転送を実行したいということがわかります。

FTPサーバーをインストールすることをお勧めしますか?

それはあなたがあなたが必要とするほとんどすべてをすることを可能にし、そして通常セットアップするのは非常に簡単です、それが必要ならば80を使うようにポートを設定することさえできます。

1
William Hilsum

答えは簡単です:thttpd。パフォーマンス、メモリ使用量、セキュリティの面で勝つことができます。そして、セキュリティとは、有能なデザインのおかげで安全であり、愚かなことを何もしていないことを意味します。あらゆる種類の「セキュリティ」の鐘と笛を備えているわけではありません。また、サイズとシンプルさに関してもほぼ最適です。

さらに小さくシンプルなものが必要な場合は、BusyBoxにhttpdアプレットがあり、これもニーズを満たす可能性があります。

単一のファイルの提供など、よりオフの要件を満たしているかどうかはわかりませんが、httpルートにシンボリックリンクを配置するラッパーを使用して実現できます。ただし、thttpdでこれを行う場合は、シンボリックリンクの制限を無効にする必要があります。

(私はこの質問が古いことを知っていますが、それはGoogleのトップ結果であり、既存の回答は軽量ではありません。)

HTTPファイルサーバー( http://www.rejetto.com/hfs/ )とも呼ばれるHFSを試すこともできます。これはWindowsアプリケーションですが、WINEを使用するとうまく機能すると言われています。その非常に低いメンテナンスと、ファイルサーバーが何であるかさえ知らない完全な初心者でさえ、多くの努力なしでそれを使用することができます。ドラッグアンドドロップ機能をサポートし、ファイルにアクセスできるIPアドレスを制御したり、ユーザーアカウントやダウンロード速度を制御したりすることもできます。

0
TenaciousD

お勧めできます http://code.google.com/p/pyftpdlib/
軽量で、ソースをダウンロードして、Pythonスクリプトを記述します(ホームページのクイックスタート部分をコピーするだけで十分です、5〜6行で、ユーザー名を設定します)およびパスワード、ホームディレクトリなど)
個人のPCからPCへのファイル転送に使用しています(Ubuntu Hardy)。既知の問題の1つ(私はそれに耐えることができます)は、Unicode(非ASCII)をうまく処理できないことです。

0
sunqiang