解决方法
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
要启用TLS:
include Ftpd::InsecureCertificate ... server.certfile_path = insecure_certfile_path server.tls = :explicit server.start
披露:我是ftpd的作者和当前的维护者