Пытаюсь скачать Net::SFTP, но получаю Errno::EACCES: В доступе отказано - каталог, в который я копирую
Я пытаюсь скопировать файл из коробки Unix на мой локальный рабочий стол, но я получаю сообщение об ошибке: Errno::EACCES: Permission denied - C:\Users\MyUser\Desktop
require 'net/sftp'
Net::SFTP.start(unixBox, user, :password => password) do |sftp|
sftp.download!(filePathOnUnixBox, 'C:\Users\MyUser\Desktop')
end
Мой рабочий стол: Windows 7
ruby 1.8.7 (2010-12-23, уровень обновления 330) [i386-mingw32]
net-sftp (2.1.1)
Unix box: SunOS
ОБНОВЛЕНИЕ: Похоже, вы должны указать имя файла в пути к файлу TO, C:\Users\MyUser\Desktop
становится C:\Users\MyUser\Desktop\fileNameIWant.ext
3 ответа
Похоже, вы должны указать имя файла в пути к файлу TO, C:\Users\MyUser\Desktop
становится C:\Users\MyUser\Desktop\fileNameIWant.ext
Раньше я только указывал путь, но не имя файла.
Единственное, что вы можете сделать, чтобы избежать сумасшествия, это прекратить использовать обратную косую черту в именах файлов Windows при использовании Ruby. Согласно документации IO:
Ruby преобразует имена путей между различными соглашениями операционной системы, если это возможно. Например, в системе Windows имя файла "/gumby/ruby/test.rb" будет открыто как "\gumby\ruby \test.rb". [...]
Похоже, что пользователь, который запускает скрипт ruby, не имеет разрешения на запись на ваш жесткий диск. Может быть MyUser
это не тот пользователь, который выполняет скрипт.
РЕДАКТИРОВАТЬ:
Забыл упомянуть, вы могли бы попытаться избежать обратной косой черты окна. Пытаться:
C:\\Users\\MyUser\\Desktop
как местный путь