0
FTP를 통해 파일을 업로드하는 루비 스크립트가 있습니다. LINUX 서버에서이를 테스트했으며 업로드가 잘 진행되고있었습니다.Ruby FTP가 IIS FTP 서버와 작동하지 않습니다.
A Connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. - connect<2> <Errno::ETIMEDOUT>
내가 그러나 FTPlog에서 연결을 찾을 수 있습니까 :
을 나는 윈도우 서버 2012 R2를 실행 IIS이다 프로덕션 서버에 업로드 대상을 변경하는 경우는하지만, 나는 다음과 같은 오류 메시지를 받았습니다
2015-01-28 10:48:55 12.34.56.78 - 87.65.43.21 21 ControlChannelOpened - - 0 0 0 0 0
2015-01-28 10:48:55 12.34.56.78 - 87.65.43.21 21 USER .... 331 0 0 23 17 0
2015-01-28 10:48:55 12.34.56.78 WIN-0CFF8VSL25E\.... 87.65.43.21 21 PASS *** 230 0 0 21 15 94
2015-01-28 10:48:55 12.34.56.78 WIN-0CFF8VSL25E\.... 87.65.43.21 21 TYPE I 200 0 0 20 8 0
2015-01-28 10:48:55 12.34.56.78 WIN-0CFF8VSL25E\.... 87.65.43.21 21 PASV - 227 0 0 50 6 0
2015-01-28 10:49:16 - WIN-0CFF8VSL25E\.... 87.65.43.21 49994 DataChannelClosed - - 0 0 0 0 0
2015-01-28 10:49:16 12.34.56.78 WIN-0CFF8VSL25E\.... 87.65.43.21 21 ControlChannelClosed - - 0 0 141 46 21469
오늘 윈도우 스크립트 ftp cli를 사용하여 배치 스크립트로 거의 동일한 작업을 수행하고 있습니다. 그것은 다른 서버와 잘 작동 된 이후 나는 스크립트에 문제가없는 가정입니다
require "net/ftp"
require "rubygems"
require "zip"
puts "Copying data"
FileUtils.cp("...", "...")
folder = "C:\\..."
input_filenames = ['...']
zipfile_name = "C:\\...\\....zip"
puts "Compressing data"
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
input_filenames.each do |filename|
zipfile.add(filename, folder + '\\' + filename)
end
end
progress = 0.0;
file_size = File.size(zipfile_name)
NET::FTP.debug_mode = true
puts "Uploading data:"
ftp = Net::FTP.new('12.34.56.78','xxx','xxx')
ftp.debug_mode = true
ftp.read_timeout = 10000
ftp.passive = true
ftp.putbinaryfile('C:\\...\\....zip', '....zip') do |data|
progress = progress.to_f+data.length.to_f
print "\rProgress: " + ((progress/file_size)*100).round(2).to_s + "%"
end
ftp.close()
puts "\nUpload completed!"
: 여기
는 루비 코드입니다. 내가 가정하고있는 것은 IIS의 FTP 서버가 연결을 처리/응답하는 방식과 vsftpd가 처리하는 방식의 차이입니다.이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
이것은 데이터 연결을 차단하는 방식으로 방화벽과 비슷해 보입니다. –
@Steffen Ullrich 나는 Windows ftp cli를 사용할 때, 동일한 클라이언트에서 동일한 호스트로, 그리고 연결할 수있는 로그에 따라 제대로 작동하기 때문에 어떻게 될지 모르지만, 그런 다음에 어떤 일이 발생합니다. – lshas
Windows cli는 기본적으로 활성 모드를 사용하고 있지만 수동 모드를 사용하고 있습니다. 데이터 연결이 작동하지 않는 것은 NAT, 방화벽, 수동 및 활성 모드 간 상호 작용의 일반적인 문제입니다. –