Ci sono file che scaricano programmi che calcolano i checksum durante il processo di download?

1

Il calcolo dei checksum per file di grandi dimensioni, ovvero da decine a centinaia di gigabyte è un processo lungo.

Ci sono file che scaricano programmi che calcolano i checksum durante il processo di download? Penso che alcuni server web abbiano la possibilità di includere informazioni di checksum nelle intestazioni di risposta, ma il processo di download può verificare le informazioni stesse, piuttosto che attendere il completamento del download?

aria ha alcune funzionalità parziali con alcuni tipi di file, ma ce ne sono alcuni con funzionalità complete integrate?

    
posta vfclists 26.09.2016 - 14:01
fonte

2 risposte

3

Una domanda molto simile ha già avuto risposta su Unix & Linux Stackexchange .

wget -O - http://example.com/file | tee file | md5sum > file.md5

Sostituisci solo md5sum con sha1sum e dovrebbe funzionare. Nota che la soluzione proposta funziona solo con i sistemi operativi * nix: far sì che funzioni in Windows potrebbe essere una sfida (ma il Bash Subsystem per Windows o Cygwin potrebbe funzionare per te ).

Modifica

Come mi è stato chiesto nei commenti come funziona, lo spiegherò qui:

wget -O - http://example.com/file scarica il file (in ordine sequenziale) e ne invia il contenuto sulla console. Il pipe | mi consente di inoltrare questi dati al programma successivo: tee file memorizza l'output di wget nel file file e inoltra i dati all'ultimo programma della catena. md5sum > file.md5 calcola l'md5-hash e lo memorizza in file.md5 .

Prestazioni: ( YMMV !)

  • Il download di un file di grandi dimensioni (4 GB) da un server locale impiega circa 80 secondi
  • Il calcolo dell'hash del file (se memorizzato localmente) impiega 70 secondi
  • Il fare entrambi contemporaneamente richiede ancora 80 secondi, con un aumento della velocità di quasi il 50% .
risposta data 26.09.2016 - 16:34
fonte
3

Come ho capito la tua domanda il software dovrebbe verificare il file di download pezzo per pezzo e assicurarsi che ogni pezzo sia valido. Questo metodo di verifica del download è implementato nel protocollo BitTorrent . Come indicato nella pagina di Wikipedia :

The file being distributed is divided into segments called pieces.
...
Each piece is protected by a cryptographic hash contained in the torrent descriptor.

I torrent sono pubblici per impostazione predefinita. Se si desidera il trasferimento privato tra due nodi, è necessario utilizzare client di sincronizzazione privati come Resilio Sync (precedentemente BitTorrent Sync) e Syncthing .

    
risposta data 26.09.2016 - 18:16
fonte

Leggi altre domande sui tag