快速FTP服务器
回答
的ftpd宝石支持TLS,并配备了一个文件系统驱动程序轻量级FTP服务器架构。像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时的作者和当前的维护者
看看这个宝石,建立在EventMachine的 https://github.com/yob/em-ftpd
谢谢!看起来不错,但我需要编写一个驱动程序才能将它用于真正的文件系统。你知道这个驱动程序是否已经存在?听起来像是一个感兴趣的开源项目,如果它没有:) – alf
好吧,它不是一个插件,去宝石,但你有一个这样的驱动程序在Git站点的例子em-ftpd/examples/fake.rb – peter
@peter hi ,这个LightWeight FTP服务器是否支持安全连接? ftps可能是? – cypronmaya
- 1. 从FTP服务器快速下载多个文件
- 2. 快速perl http服务器?
- 3. ftp ftp服务器C
- 4. 可变的HTTP/HTTPS快速服务器
- 5. 使用Grunt启动快速服务器
- 6. Node.js快速服务器端结构
- 7. 快速http 2服务器推送
- 8. 从gulp启动快速服务器
- 9. 更改SQL服务器快速表名
- 10. .on('connection')为快速服务器
- 11. Python的快速Web服务器
- 12. 假FTP服务器
- 13. FTP服务器库
- 14. 速度更快:Web服务还是XML服务器输出?
- 15. 我无法FTP到FTP服务器
- 16. SSH FTP上传到FTP服务器
- 17. FTP不同的服务器
- 18. 如何从FTP服务器
- 19. FTP服务器监控
- 20. VPS上的FTP服务器
- 21. 读取FTP服务器
- 22. 上传到FTP服务器
- 23. Azure上的FTP服务器
- 24. 从ftp服务器推送
- 25. 一线FTP服务器
- 26. 创建C++ FTP服务器
- 27. PIL.Image.save()到FTP服务器
- 28. 一个ftp服务器
- 29. 设置FTP服务器
- 30. Java和FTP服务器
太棒了!我将用它作为即插即用宝石的基础。谢谢! – alf
@alfonso,请让我知道它是如何为你工作的。我的电子邮件地址在README中。顺便说一句,我应该提到这个例子*允许写/删除/等。下一个版本将有一个ReadOnlyDiskFileSystem。 –
宝石创建!它被称为[Purvey](https://github.com/alfonsocora/purvey)。我还向您发送了一个针对我在运行ftpd规格时遇到的小问题的请求。如果您感觉自己也愿意为Purvey做出贡献:)感谢您的帮助! – alf