Estoy tratando de encontrar la mejor y más rápida forma de saber si un archivo existe en un servidor ftp.¿Cómo se puede saber si existe un archivo FTP usando ruby?
Esto es lo que me ocurrió ...
def remote_exists?(idx)
#@file.rewind if @file.eof?
ftp = Net::FTP.new(FTP_SERVER)
ftp.login
begin
ftp.size(idx)
rescue Exception
return false
end
true
end
Parece que fue capturar todas las excepciones es una mala idea, pero tuve problemas para conseguir la excepción específica correcta (s).
También estoy usando OpenURI en mi código para realmente obtener el archivo. Estaba tratando de averiguar si eso podría tener algún método que podría ser mejor, pero creo que solo usa Net :: FTP de todos modos.
El código podría preguntar al servidor si admite tamaño, pero enumerar los archivos, o el archivo en particular, y extraer el tamaño debería ser más universal, excepto que los servidores FTP no necesariamente se ajustan a un estándar para su listado. En un entorno dedicado/de uso único que es fácil de solucionar. En un cliente genérico, requiere más trabajo. –