Sto usando pycurl come back-end per la libreria Python boto
. È molto veloce e versatile, ma ho il problema che gli upload di grandi file spesso falliscono al reset della connessione. Quando uso il semplice boto
con lo standard httplib
, è molto più affidabile.S3 Upload con interrupt pycurl
Quello che ho trovato usando Wireshark è che dopo un po '(o qualche volta anche piuttosto presto), la mia macchina smette di ricevere ACK da S3, quindi ripristina la connessione. Sembra quasi che lo pycurl
sia così veloce da soffocare la connessione. E se accelero il caricamento (utilizzo l'interfaccia multipla) o utilizzo una connessione internet più lenta, il caricamento funziona correttamente.
Mi chiedo ancora cosa avrei potuto fare di sbagliato.
Ho anche provato a caricare con .NET S3 SDK. È circa 3 volte più lento, ma ha successo. Inoltre, è tutto su Windows 7, la macchina OS X sulla stessa rete carica di nuovo molto più lentamente, ma in modo affidabile.
Suoni come il driver NIC in Windows sta soffocando. Ho visto questo comportamento anche in altre applicazioni. Le prove aneddotiche affermano che disattivare le varie opzioni di offload TCP nel driver potrebbe aiutare. – nikola