У меня была проблема, когда загрузка в локальный файл была заблокирована, пока я не убил скрипт ruby. По-моему, я изменил форму вызова, и теперь он не блокирует файл.Блокировка файла ruby open-uri
Может кто-нибудь сказать мне, почему вторая форма ниже не блокирует файл, но первый делает?
Эта форма фиксирует локальный файл:
open(ver_local_zip, "w+").write(open(remote_zip, :proxy=>ftp_proxy).read)
Эта форма не блокирует файл:
open(ver_local_zip, "w+") { |f| f.write(open(remote_zip, :proxy=>ftp_proxy).read) }
Спасибо.
То, что я подозревал. Спасибо за ответ. – digitalsanctum
Обратите внимание, что вы можете (и должны) освободить возвращаемый дескриптор вручную при использовании первого метода, а не ждать GC. – Eli