我正在寻找一种快速、无需配置的 FTP 服务器。与Serve或Rack_dav完全一样的东西,但对于 FTP,它可以通过运行命令来发布文件夹。有宝石或其他东西可以做这样的事情吗?
解决方案
基于 Wayne 的 ftpd gem,我创建了一个名为Purvey的快速且易于使用的 gem 。
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 的作者和当前维护者
看看这个 gem,一个基于 EventMachine https://github.com/yob/em-ftpd的轻量级 FTP 服务器框架