Загрузка файлов из локального каталога в SFTP с использованием Ruby - PullRequest
0 голосов
/ 04 февраля 2019

По какой-то причине загрузка SFTP в Ruby (копирование файлов из локального каталога на 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::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

1 Ответ

0 голосов
/ 05 февраля 2019

Спасибо, Кенникок!Это загрузить!было определенно полезно.Также sftp.close () следует удалить для sftp.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...