发布于 2013-03-05 12:00:49
ftpd gem支持TLS,并附带一个文件系统驱动程序。就像em一样,你提供一个驱动程序,但是这个驱动程序不需要做太多。下面是一个最基本的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的作者和现在的维护者
发布于 2012-05-05 16:53:41
看看这个gem,一个构建在EventMachine https://github.com/yob/em-ftpd上的轻量级FTP服务器框架。
https://stackoverflow.com/questions/10457483
复制相似问题