Есть ли способ указать путь для использования в качестве временного каталога для метода open()
(при использовании open-uri
)?Укажите нестандартный временный каталог для метода open() в Ubuntu
Я использую Ubuntu 12.04 и Ruby 2.0.0 с RVM - он использует стандартный системный темп (/tmp
). Когда я загружаю большие файлы, требуется некоторое время, прежде чем файл будет удален из сети и перенесен в целевой каталог; Кроме того, я не хочу заполнять файловую систему /tmp
.
Я знаю, что есть другие способы загрузки файлов, некоторые из которых позволяют записывать данные в куски, я просто спрашиваю о стандартном методе open
с open-uri
.
код я использую:
['ftp://example1.com/a.gz', 'ftp://example2.com/b', 'example3.com/somefile'].
each do |uri|
thread = Thread.new do
3.times do
File.open(uri.split(/\//)[-1], "wb") do |file|
file.write open(uri).read
end
end
end
threads << thread
end
(точка все это я должен сделать скрипт вытягивать большие файлы из произвольных сайтов как способ насытить сетевое соединение для того, чтобы проверить пропускная способность).
То есть довольно странно, но я уже пытался установить «ENV ['TMPDIR»] и целевой каталог на одно и то же значение (чтобы я мог убедиться, что все файлы удалены при выходе или в ловушке 'SIGINT'), и это не сработало, также при проверке 'ENV' (в отдельном сеансе) ничего не было в 'TMPDIR', поэтому я думал, что это, по-видимому, не так.Теперь я использую ту же ОС и тот же Ruby на ноутбуке дома, и он отлично работает. Скорее всего, что-то не так с настройкой машины, над которой я работал. Спасибо;) –
Странно: - $ приветствую ;-) – mdesantis
Почему я не могу просто передать строку? Он отлично работает, когда я использую приведенный выше пример кода, но не тогда, когда я делаю следующее: 'ENV [" TMPDIR "] ="/whatever/path "' 'p open (" http://www.google.com ") ' – Florian