Я использую pycurl в качестве back-end для библиотеки boto
Python. Он очень быстрый и универсальный, но у меня проблема с тем, что при загрузке больших файлов очень часто происходит сбой при подключении reset. Когда я использую простой boto
с простым httplib
, он намного надежнее.
То, что я нашел с помощью Wireshark, заключается в том, что через некоторое время (а иногда и довольно скоро) моя машина перестает принимать ACK с S3, поэтому сбрасывает соединение. Похоже, что pycurl
настолько быстр, что он задевает соединение. И если я активирую загрузку (я использую мультиинтерфейс) или использую более медленное подключение к Интернету, загрузка выполняется нормально.
Мне все еще интересно, что я мог сделать неправильно.
Я также пытался загрузить с помощью SDK.NET S3. Это примерно в 3 раза медленнее, но преуспевает. Кроме того, все это на Windows 7, машина OS X в той же сети снова загружается намного медленнее, но надежно.