6

高速で構成不要の FTP サーバーを探しています。ServeまたはRack_davとまったく同じですが、コマンドを実行するだけでフォルダーを公開できる FTP 用です。そんなことをするgemか何かありますか?

解決

Wayne の ftpd gem に基づいて、 Purveyという迅速で使いやすい gem を作成しました。

4

2 に答える 2

8

ftpd gem は TLS をサポートし、ファイル システム ドライバーが付属しています。em-ftpd と同様に、ドライバーを提供しますが、そのドライバーは多くのことを行う必要はありません。これは、任意のユーザー名/パスワードを受け入れ、一時ディレクトリからファイルを提供する最小限の FTP サーバーです。

require 'ftpd'
require 'tmpdir'

class Driver

  def initialize(temp_dir)
    @temp_dir = temp_dir
  end

  def authenticate(user, password)
    true
  end

  def file_system(user)
    Ftpd::DiskFileSystem.new(@temp_dir)
  end

end

Dir.mktmpdir do |temp_dir|
  driver = Driver.new(temp_dir)
  server = Ftpd::FtpServer.new(driver)
  server.start
  puts "Server listening on port #{server.bound_port}"
  gets
end

: この例では、FTP クライアントがアップロード、削除、名前変更などを行うことができます。

TLS を有効にするには:

include Ftpd::InsecureCertificate
...
server.certfile_path = insecure_certfile_path
server.tls = :explicit
server.start

開示: 私は ftpd の作成者であり、現在のメンテナーです

于 2013-03-05T12:00:49.473 に答える