Das herunterladen einer Torrent-mit libtorrent-python
Habe ich das folgende python-code:
import libtorrent as lt
import time
ses = lt.session()
ses.listen_on(6881, 6891)
params = {
'save_path': '/home/downloads/',
'storage_mode': lt.storage_mode_t(2),
'paused': False,
'auto_managed': True,
'duplicate_is_error': True}
link = "magnet:?xt=urn:btih:4MR6HU7SIHXAXQQFXFJTNLTYSREDR5EI&tr=http://tracker.vodo.net:6970/announce"
handle = lt.add_magnet_uri(ses, link, params)
ses.start_dht()
print 'downloading metadata...'
while (not handle.has_metadata()):
time.sleep(1)
print 'got metadata, starting torrent download...'
while (handle.status().state != lt.torrent_status.seeding):
s = handle.status()
state_str = ['queued', 'checking', 'downloading metadata', \
'downloading', 'finished', 'seeding', 'allocating']
print '%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s %.3' % \
(s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, \
s.num_peers, state_str[s.state], s.total_download/1000000)
time.sleep(5)
Scheint gut zu funktionieren, aber dann verlangsamt, um weniger als ein byte/s:
$ python test.py
downloading metadata...
got metadata, starting torrent download...
0.00% complete (down: 195.0 kb/s up: 8.0 kB/s peers: 28) checking 3.069
0.00% complete (down: 133.0 kb/s up: 5.0 kB/s peers: 28) checking 3.342
0.00% complete (down: 29.0 kb/s up: 1.0 kB/s peers: 28) checking 3.359
0.00% complete (down: 5.0 kb/s up: 0.0 kB/s peers: 28) checking 3.398
0.00% complete (down: 4.0 kb/s up: 0.0 kB/s peers: 28) checking 3.401
0.00% complete (down: 0.0 kb/s up: 0.0 kB/s peers: 28) checking 3.405
0.00% complete (down: 0.0 kb/s up: 0.0 kB/s peers: 28) checking 3.408
0.00% complete (down: 0.0 kb/s up: 0.0 kB/s peers: 28) checking 3.412
Verlangsamt es und wird nie abgeschlossen. Irgendeine Idee warum dies passiert?
InformationsquelleAutor der Frage cdecker | 2011-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem war trivial. Der save_path nicht vorhanden, so ist die libtorrent Bibliothek heruntergeladen, solange es nicht den cache leeren, aber sobald es versucht, die Datei zu schreiben, scheiterte und konnte nicht weiter herunterladen, daher die Verlangsamung und schließliche Stillstand. Einmal einen bestehenden Pfad wurde Hinzugefügt, es funktionierte gut.
InformationsquelleAutor der Antwort cdecker
Den download-rate, die Sie sehen, die meisten wahrscheinlich von den eigentlichen Metadaten herunterladen (D. H. der .torrent-Datei wird heruntergeladen von Ihren Kollegen). Sobald die .torrent-Datei heruntergeladen wurde, wird es gestartet wird. In diesem Fall.
Scheint es, als ob Sie bereits einige der Dateien, die gehören zu dieser torrent, so der Download ist beendet und die Dateien überprüft werden. also das Stück gelesen, gehasht und verglichen, um das Stück hashes in der .torrent-Datei.
Der letzten Spalte sehen Sie die Anzahl der Megabyte in der gefunden Dateien mit den hashes, die vorletzte Spalte zeigt Ihnen den Zustand des Stromes, D. H. der überprüfung.
Wenn Sie warten, bis die überprüfung fertig ist, wird der download wieder aufgenommen wird.
Besser noch, wenn Sie speichern Lebenslauf Daten, wenn Sie Sie beenden, und laden Sie Sie zurück auf Start, werden Sie nicht haben, um re-check jedes mal.
InformationsquelleAutor der Antwort Arvid