Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 快速FTP服务器_Ruby_Ftp_Rubygems - Fatal编程技术网

Ruby 快速FTP服务器

Ruby 快速FTP服务器,ruby,ftp,rubygems,Ruby,Ftp,Rubygems,我正在寻找一个快速,配置少,FTP服务器。与或完全相同,但对于FTP,只需运行命令即可发布文件夹。 有什么宝石或东西可以做这样的事吗 解决方案 基于Wayne的ftpd gem,我创建了一个快速且易于使用的gem,名为。看看这个gem,它是一个构建在EventMachine上的轻量级FTP服务器框架 gem支持TLS,并附带文件系统驱动程序。与em ftpd一样,您提供了一个驱动程序,但该驱动程序不需要做很多工作。这是一个最小的FTP服务器,它接受任何用户名/密码,并从临时目录中提供文件: re

我正在寻找一个快速,配置少,FTP服务器。与或完全相同,但对于FTP,只需运行命令即可发布文件夹。 有什么宝石或东西可以做这样的事吗

解决方案


基于Wayne的ftpd gem,我创建了一个快速且易于使用的gem,名为。

看看这个gem,它是一个构建在EventMachine上的轻量级FTP服务器框架

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,但是你在Git站点em ftpd/examples/fake上有这样一个驱动程序的例子。rb@peter嗨,这个轻量级FTP服务器支持安全连接吗?ftps可能是?别这么想,我还没找到references@cypronmaya:你想出办法了吗?i、 e支持FTPS?太好了!我将使用它作为即插即用gem的基础。谢谢@阿方索,请让我知道它对你有什么作用。我的电子邮件地址在自述文件中。顺便说一下,我应该提到这个例子允许写/删除/等等。。下一个版本将创建一个ReadOnlyDiskFileSystem.gem!它叫。我还向您发送了一个拉取请求,以解决我在运行ftpd规范时遇到的一个小问题。如果您也觉得有必要,请随时为Purvey捐款:)谢谢您的帮助!