Это жалоба программы cd
, и это низкоуровневая операционная система, поэтому наиболее вероятная причина в том, что одна или несколько папок после #{RAILS_ROOT}/public
еще не существуют, или есть пробел или какой-то другой символ в пути к файлу, вызывающий проблемы. Попробуйте заключить имя каталога в кавычки.
`cd "#{RAILS_ROOT}/public/users/familyvideos/thumbs" && wget -O sxyz1.mp4 #{video.download_url}`
Что касается лучших способов, то wget довольно испытан и протестирован, так что в его использовании нет ничего плохого, так как это то, для чего он был разработан. Вы можете просто указать ему папку и имя файла одновременно, вместо того, чтобы сначала перейти к нему.
`wget -O "#{RAILS_ROOT}/public/users/familyvideos/thumbs/sxyz1.mp4" #{video.download_url}`
Обратите внимание, что я использую метод выполнения backtick вместо system
, поэтому вы не имеете дело с экранированием двойных кавычек. Вы также можете использовать %x{wget ...}
.