Per favore scusate la mia ignoranza sull'argomento.Download multipart in C#?
Mi piacerebbe scrivere un'applicazione in C# che può scaricare file da un server nello stesso modo DownThemAll. DownThemAll sembra aprire quattro connessioni al server HTTP per scaricare lo stesso file. Mi stavo chiedendo se ci sono eventuali librerie esistenti che potrebbero farlo.
Ecco una citazione dal loro sito a proposito di questa funzione:
DownThemAll dispone di una tecnica intelligente scaricare chiamata ‘multipart download’. Divide i file in più sezioni, che vengono scaricate contemporaneamente.
Vorrei anche essere in grado di mettere in pausa/riprendere i download. Questa è la funzionalità di base che vorrei, non ho necessariamente bisogno di una libreria di download manager completa, ma se ce n'è una che può fare queste cose allora mi piacerebbe anche saperle. I file sono in una directory protetta da password ospitata con lighttpd, quindi avrei anche bisogno di un modo per autenticarmi.
Se non ci sono librerie pre-esistenti che posso usare, allora quali classi .net dovrei esaminare che potrebbero essere in grado di fare ciò?
Grazie!
EDIT: ha riformulato il titolo per essere più appropriato e ha aggiunto una citazione dal sito DownThemAll che spiega di cosa si tratta.
2 ° EDIT: credo che svens abbia postato la risposta più appropriata finora, anche se come commento:/È colpa mia perché ho sbagliato il titolo perché non sapevo di cosa stavo parlando. Ha pubblicato uno article che va a scaricare/riprendere il download HTTP. Si parla anche l'intestazione Range
che è quello che penso che dovrei usare:
L'intestazione Range è in grado di chiedere più di un intervallo in una singola richiesta, una funzione denominata "gamme più parti." Non confondere questo con il download segmentato, che quasi tutti gli strumenti di download utilizzano per aumentare la velocità del download. Questi strumenti sostengono di migliorare la velocità di download aprendo due o più connessioni simultanee, ognuna delle quali richiede un intervallo diverso del file.
Quindi, lo prendo Voglio usare l'intervallo per scaricare alcune parti del file contemporaneamente. Di nuovo, questo probabilmente non ha alcun vantaggio rispetto al semplice download del file in una volta sola. Lo farò e permetterò la pausa/ripresa.
Grazie ragazzi!
svens P.S, vai avanti e pubblica il commento come risposta in modo che io possa accettarlo se vuoi.
http://www.devx.com/dotnet/Article/22533/0/page/2 descrive come vengono ripristinati i download nel protocollo http, http://www.codeproject.com/KB/IP/pauseresume.aspx descrive come farlo con i server ftp. – svens
Questa potrebbe essere una risposta, penso. Lo stesso metodo potrebbe essere il modo in cui scaricano pezzi separati del file, quindi in qualche modo lo mettono insieme una volta che i blocchi sono finiti. –
Questa pratica è in realtà cattiva per il server e vengono fatti sforzi per bloccare tali tentativi di download. Il trucco è aumentato nei tempi dei modem dial-up quando le persone cercavano di spremere tutto fuori di esso. Basta essere carini e scaricare in un'unica connessione. EDIT: questo metodo fallirebbe sul mio server per diversi motivi. Ho una cosa per lanciare bastoni sotto i piedi dei leechers. – Zdenek