使用Ruby将文件从本地目录上载到SFTP
出于某种原因,Ruby中的SFTP上载(将文件从本地目录复制到SFTP服务器)似乎无法工作。我目前正在使用Ruby 2.5.3。如果您有任何想法,我将不胜感激: 我的代码如下:使用Ruby将文件从本地目录上载到SFTP,ruby,Ruby,出于某种原因,Ruby中的SFTP上载(将文件从本地目录复制到SFTP服务器)似乎无法工作。我目前正在使用Ruby 2.5.3。如果您有任何想法,我将不胜感激: 我的代码如下: require 'net/ssh' require 'net/sftp' server = 'sftp.secure.net' username = '123456' password = "Mypassword*" uid = '123456' files = Dir.entries(outdir) Net::SF
require 'net/ssh'
require 'net/sftp'
server = 'sftp.secure.net'
username = '123456'
password = "Mypassword*"
uid = '123456'
files = Dir.entries(outdir)
Net::SFTP.start(server, username, :password=>password) do |sftp|
for filename in files
#puts files
puts "Browsing files..."
puts "File: #{filename}"
#puts new_filename
####### replacing , for | ########
if /#{uid}_test_[0-9]{8}_[0-9]{8}.txt$/ =~ filename
file = "#{outdir}\\#{filename}"
puts "SFTPing #{file}"
sftp.upload(file)
puts "SFTP Complete for file #{file}"
puts "Cleanup"
puts "Deleting #{file}."
File.delete(file)
puts "Files were deleted."
end
end
puts "Closing SFTP connection..."
sftp.close
puts "SFTP connection closed."
end
谢谢你,肯尼科!那个上传!这肯定很有帮助。此外,应删除sftp的sftp.close()。SFTP连接将自动关闭。我发现FTP需要这个,但SFTP不需要 谢谢 定稿:
files = Dir.entries(outdir)
Net::SFTP.start(hostname, username, :password=>password) do |sftp|
for filename in files
#puts files
puts "Browsing files..."
puts "File: #{filename}"
#puts new_filename
####### replacing , for | ########
if /#{uid}_test_[0-9]{8}_[0-9]{8}.txt$/ =~ filename
file = "#{outdir}\\#{filename}"
puts "SFTPing #{file}"
sftp.upload!(file)
puts "SFTP Complete for file #{file}"
puts "Cleanup"
puts "Deleting #{file}."
File.delete(file)
puts "Files were deleted."
end
end
#puts "Closing SFTP connection..."
#sftp.close()
puts "SFTP connection closed."
end
如果不知道您使用的是什么宝石,以及您遇到的错误,那么很难提供帮助。但是假设您使用的是
upload
似乎不是一个定义的函数,您需要使用upload代码>