Ich hatte ein Problem, bei dem das Herunterladen in eine lokale Datei es blockierte, bis ich das Ruby-Skript beendete. Ich habe die Form des Anrufs geändert und jetzt wird die Datei nicht gesperrt.Ruby open-uri Dateisperrung
Kann mir jemand sagen, warum die zweite Form nicht die Datei sperrt, aber die erste?
Diese Form sperrt die lokale Datei:
open(ver_local_zip, "w+").write(open(remote_zip, :proxy=>ftp_proxy).read)
Diese Form sperrt die Datei nicht:
open(ver_local_zip, "w+") { |f| f.write(open(remote_zip, :proxy=>ftp_proxy).read) }
Dank.
Was ich vermutete. Danke für die Antwort. – digitalsanctum
Beachten Sie, dass Sie das zurückgegebene Handle manuell freigeben können (und sollten), wenn Sie die erste Methode verwenden, anstatt auf den GC zu warten. – Eli