download! method doesn't close file
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia dall’implementazione di download! e segui come viene gestito Tempfile. Riproduci l’esempio di download/lettura sequenziale dell’issue, poi aggiungi o aggiorna la coverage per la lettura immediatamente dopo il download; il lavoro è completo quando la lettura vede sempre il contenuto completo senza che il chiamante chiuda il file.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
which causes hard-to-debug errors when you download many files in a row and try to read the file contents immediately after downloading. It works most of the time, but at some point a downloaded file will not be flushed to disk completely when you try to read the file.
Reading only the partially written file from disk will, of course, result in corrupted file contents. I was able to avoid this behavior by explicitly closing the downloaded file before reading it again. But this was not very intuitive, so please consider closing the file within the download method.
tmp_file = Tempfile.new(file_name, tmp_dir)
src = File.join(dir, file_name)
download! src, tmp_file, log_percent: -1
# it's important to close the tmp file, otherwise data might not be written
# to disk already, when we try to read the file again
tmp_file.close
begin
File.read tmp_file
ensure
tmp_file.close
tmp_file.unlink
end
- Lingua principale
- Ruby
- Stelle
- 1.2k
- Fork
- 257
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di capistrano/sshkit
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
capistrano/sshkit#563 · 6 reazioni ·
-
No redaction for with valuesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
capistrano/sshkit#562 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
capistrano/sshkit#554 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
capistrano/sshkit#543 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
capistrano/sshkit#499 · 1 commento ·
Tutte le issue di capistrano/sshkit
Issue simili
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
OSCON 2016Apertacontent
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
rubyevents/rubyevents#2148 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
we-promise/sure#3838 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Mend: dependency security vulnerability
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ManageIQ/manageiq-ui-classic#10341 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
rubocop/ruby-style-guide#984 ·