我使用Net :: FTP的getbinaryfile
功能来通过FTP提取zip文件。我的系统不知道完整的文件名,所以我只想搜索文件夹中的zip文件扩展名。通常我只是输入文件名为*.zip
。这似乎并不奏效。文件扩展名为FTP getbinaryfile?
ftp = Net::FTP.new(domain)
path = "#{Rails.root}/public/ftp/#{self.id}.zip"
ftp.getbinaryfile("*.zip", path)
我使用Net :: FTP的getbinaryfile
功能来通过FTP提取zip文件。我的系统不知道完整的文件名,所以我只想搜索文件夹中的zip文件扩展名。通常我只是输入文件名为*.zip
。这似乎并不奏效。文件扩展名为FTP getbinaryfile?
ftp = Net::FTP.new(domain)
path = "#{Rails.root}/public/ftp/#{self.id}.zip"
ftp.getbinaryfile("*.zip", path)
我用下面的代码返回zip文件名称在FTP文件夹中。然后使用与上面相同的代码,我可以使用正确的zip文件名运行getbinaryfile
。
files = ftp.nlst("*.zip")
我使用以下方法来获取所有的压缩文件(我使用SFTP但希望这将指向你在正确的方向)
Net::SFTP.start(domain, user, :password => 'pass') do |sftp|
sftp.dir.glob("/yourdirectory","*.zip").each do |file|
sftp.download!(file, "/local/spot")
end
end
重要的是要记住,FTP不*与使用命令行和shell相同。您的FTP客户端依赖于具有不同功能的服务器,因此通配符将不会以相同的方式工作。例如,我们无法获得一堆匹配模式的文件。有一些服务器实现了对FTP协议的扩展,但客户端必须感知这些扩展,然后进行编程以利用它们。基本的命令总是有效的,所以熟悉这些命令,然后再建立它们。 –