加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 快速FTP服务器

发布时间:2020-12-16 23:26:22 所属栏目:百科 来源:网络整理
导读:我正在寻找一个快速,无配置的FTP服务器.与 Serve或 Rack_dav完全相同的东西,但对于FTP,只需运行命令即可发布文件夹. 是否有宝石或其他东西可以做这样的事情? 解 基于Wayne的ftpd gem,我创建了一个名为Purvey的快速且易于使用的宝石. 解决方法 ftpd gem支持T
我正在寻找一个快速,无配置的FTP服务器.与 Serve或 Rack_dav完全相同的东西,但对于FTP,只需运行命令即可发布文件夹.
是否有宝石或其他东西可以做这样的事情?

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

解决方法

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的作者和当前的维护者

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读