Я пытаюсь удалить старые файлы с FTP с помощью Ruby net/sftp
, но я продолжаю получать сообщение о том, что файл не существует.Удалите файл с помощью Ruby SFTP `remove` и` remove! `
:error=>"Net::SFTP::StatusException (2, \"no such file\")"
Я могу удалить файлы вручную при входе в систему, используя те же самые кредиты, поэтому я знаю, что у меня есть разрешение.
require 'net/sftp'
ftp = Net::SFTP.start(@ftp_url, @ftp_user, :password => @ftp_pwd)
ftp.dir.entries('somePath').each do |entry|
begin
age_days = (Time.now.to_i - entry.attributes.atime)/86400
if(age_days > ftp_max_file_age_days)
ftp.remove!(entry.name)
end
rescue Exception => e
# log error here
end
end
Я предпочитаю remove!
так все происходит синхронно в этом случае, но я также попытался remove
.
Я также попытался дать ему полный путь к файлу, а не только имя записи (например, 'somePath' + entry.name
вместо entry.name
). Я думал, возможно, это было потому, что мне нужно было изменить рабочий каталог, который, видимо, net/sftp
не разрешает.
Заранее благодарен!
«Я думал, возможно, это было потому, что мне нужно было сменить рабочий каталог, который, по-видимому, net/sftp не позволяет». На SFTP-протоколе фактически нет команды для изменения удаленного каталога. Клиенты с операцией cd/chdir притворяются. – Kenster