6

我正在寻找一种快速、无需配置的 FTP 服务器。与ServeRack_dav完全一样的东西,但对于 FTP,它可以通过运行命令来发布文件夹。有宝石或其他东西可以做这样的事情吗?

解决方案

基于 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 回答
2

看看这个 gem,一个基于 EventMachine https://github.com/yob/em-ftpd的轻量级 FTP 服务器框架

于 2012-05-05T16:53:41.363 回答