Aws-cli: Загрузка файлов в S3 из экземпляров EC2 не выполняется на некоторых типах экземпляров.

Созданный на 6 февр. 2014  ·  41Комментарии  ·  Источник: aws/aws-cli

У нас очень странная проблема. Мы загружаем большие (10M) файлы из экземпляра EC2 в корзину S3 в том же регионе. Мы используем aws s3 cp для ролей загрузки и экземпляра для аутентификации.

Если мы используем экземпляр m1.small EC2, загрузка работает нормально. Но если мы увеличим размер экземпляра (мы пробовали m1.large и m3.large ), загрузка не удалась.

Вот ошибка, которую мы получаем:

upload failed: <file> to <s3-address>
HTTPSConnectionPool(host='<bucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: <s2-key>?partNumber=2&uploadId=Hw6FZhXeH03ZzzCtxu2XcsspmpN2lx83GxWGzrJ96I81XlajjjNCxsSj0vs0BIbf_xJmzfdZwZY_UzUL3NCT57rpqEwIuLD1qryr7KKjlR6rA0YIW_ltopZQkoo32i0qTPUAlBc55WRAYxjwJ8Iw1A-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)

Это полностью воспроизводимо - у нас никогда не было такой успешной загрузки после десятков попыток. Мы никогда не видели проблемы с экземпляром m1.small за сотни попыток.

Мы столкнулись с этой проблемой с 10-мегабайтными файлами. Мы обнаружили, что он воспроизводится до 1M. Намного меньше этого, и он каждый раз работает нормально.

Мы будем очень признательны за любые идеи о том, что происходит.

Самый полезный комментарий

@uldall Если вы еще не решили это, для меня это было исправлено путем установки последней версии aws-cli - последняя версия на apt-get устарела, поэтому вы должны установить с помощью pip. Вот инструкции:
https://www.slashroot.in/how-to-install-and-configure-aws-cli-on-ubuntu-16-04

Все 41 Комментарий

Какую версию CLI вы используете? Это похоже на https://github.com/aws/aws-cli/pull/594 , что было исправлено в 1.2.11.

На самом деле эта проблема была связана с загрузками, а эта с загрузками, поэтому, вероятно, это другая проблема. Мне нужно разобраться в этом подробнее. Если бы вы могли предоставить журнал этого --debug , это помогло бы в устранении неполадок.

Также примерно сколько файлов 10M вы загружаете за раз?

У меня также возникают проблемы с загрузкой на s3, но с моего ноутбука (OSX mavericks). Ошибка файла 424 КБ,
и файл 344 КБ работал. Я загружаю по одному файлу следующих версий:

awscli==1.2.13
boto==2.24.0
botocore==0.33.0

Ошибка такая же, как и в исходном сообщении:

upload failed: ./test to s3://<bucket>/deploys/test HTTPSConnectionPool(host='bnch.s3.amazonaws.com', port=443): Max retries exceeded with url: /deploys/test (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)

Я запустил его с --debug, и вот часть, которая продолжает повторять попытки:

2014-02-06 21:20:17,138 - botocore.retryhandler - DEBUG - Retry needed, action of: 3.28890874908
2014-02-06 21:20:17,138 - botocore.endpoint - DEBUG - Response received to retry, sleeping for 3.28890874908 seconds
2014-02-06 21:20:20,428 - botocore.awsrequest - DEBUG - Rewinding stream: <open file u'<redacted>/test', mode 'rb' at 0x101dc6c90>
2014-02-06 21:20:20,428 - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [PUT]>
2014-02-06 21:20:20,429 - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (4): <bucket>.s3.amazonaws.com
2014-02-06 21:20:21,693 - botocore.hooks - DEBUG - Event needs-retry.s3.PutObject: calling handler <botocore.retryhandler.RetryHandler object at 0x101e0d550>
2014-02-06 21:20:21,693 - botocore.retryhandler - DEBUG - retry needed, retryable exception caught: HTTPSConnectionPool(host='<bucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /deploys/test (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)
Traceback (most recent call last):
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 262, in _should_retry
    return self._checker(attempt_number, response, caught_exception)
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 310, in __call__
    caught_exception)
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 219, in __call__
    return self._check_caught_exception(attempt_number, caught_exception)
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 352, in _check_caught_exception
    raise caught_exception
ConnectionError: HTTPSConnectionPool(host='<bucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /deploys/test (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)
2014-02-06 21:20:21,693 - botocore.retryhandler - DEBUG - Retry needed, action of: 2.598356941
2014-02-06 21:20:21,693 - botocore.endpoint - DEBUG - Response received to retry, sleeping for 2.598356941 seconds
2014-02-06 21:20:24,293 - botocore.awsrequest - DEBUG - Rewinding stream: <open file u'<redacted>/test', mode 'rb' at 0x101dc6c90>
2014-02-06 21:20:24,293 - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [PUT]>
2014-02-06 21:20:24,294 - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (5): <bucket>.s3.amazonaws.com
2014-02-06 21:20:25,888 - botocore.hooks - DEBUG - Event needs-retry.s3.PutObject: calling handler <botocore.retryhandler.RetryHandler object at 0x101e0d550>
2014-02-06 21:20:25,888 - awscli.customizations.s3.tasks - DEBUG - <redacted>/test upload failure: HTTPSConnectionPool(host='<bucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /deploys/test (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)
2014-02-06 21:20:25,888 - botocore.operation - DEBUG - Operation:PutObject called with kwargs: {'body': <open file u'<redacted>/test', mode 'rb' at 0x101e61d20>, 'bucket': u'<bucket>', 'key': u'deploys/test'}
2014-02-06 21:20:25,889 - botocore.endpoint - DEBUG - Making request for Operation:PutObject (verify_ssl=True) with params: {'headers': {}, 'uri_params': {u'Bucket': u'<bucket>', u'Key': u'deploys/test'}, 'payload': <botocore.payload.Payload object at 0x101fc3ed0>}
2014-02-06 21:20:25,889 - botocore.endpoint - DEBUG - Building URI for rest endpoint.
2014-02-06 21:20:25,889 - botocore.endpoint - DEBUG - Templated URI path: /{Bucket}/{Key}
2014-02-06 21:20:25,889 - botocore.endpoint - DEBUG - Templated URI query_params:
2014-02-06 21:20:25,889 - botocore.endpoint - DEBUG - Rendered path: /<bucket>/deploys/test
2014-02-06 21:20:25,889 - botocore.endpoint - DEBUG - Rendered query_params:
2014-02-06 21:20:25,890 - botocore.hooks - DEBUG - Event before-auth.s3: calling handler <function fix_s3_host at 0x101b24410>
2014-02-06 21:20:25,890 - botocore.handlers - DEBUG - Checking for DNS compatible bucket for: https://s3-us-west-2.amazonaws.com/<bucket>/deploys/test
2014-02-06 21:20:25,890 - botocore.handlers - DEBUG - URI updated to: https://<bucket>.s3.amazonaws.com/deploys/test
2014-02-06 21:20:25,890 - botocore.auth - DEBUG - Calculating signature using hmacv1 auth.
2014-02-06 21:20:25,890 - botocore.auth - DEBUG - HTTP request method: PUT
2014-02-06 21:20:25,890 - botocore.auth - DEBUG - StringToSign:
PUT


Fri, 07 Feb 2014 05:20:25 GMT
/<bucket>/deploys/test
2014-02-06 21:20:25,891 - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [PUT]>
2014-02-06 21:20:25,891 - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (6): <bucket>.s3.amazonaws.com
2014-02-06 21:20:27,373 - botocore.hooks - DEBUG - Event needs-retry.s3.PutObject: calling handler <botocore.retryhandler.RetryHandler object at 0x101e0d550>
2014-02-06 21:20:27,374 - botocore.retryhandler - DEBUG - retry needed, retryable exception caught: HTTPSConnectionPool(host='<bucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /deploys/test (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)
Traceback (most recent call last):
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 262, in _should_retry
    return self._checker(attempt_number, response, caught_exception)
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 310, in __call__
    caught_exception)
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 219, in __call__
    return self._check_caught_exception(attempt_number, caught_exception)
  File "<redacted>/lib/python2.7/site-packages/botocore/retryhandler.py", line 352, in _check_caught_exception
    raise caught_exception
ConnectionError: HTTPSConnectionPool(host='<bucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /deploys/test (Caused by <class 'socket.error'>: [Errno 32] Broken pipe)
2014-02-06 21:20:27,374 - botocore.retryhandler - DEBUG - Retry needed, action of: 0.627294998584
2014-02-06 21:20:27,374 - botocore.endpoint - DEBUG - Response received to retry, sleeping for 0.627294998584 seconds

Мы используем версию 1.2.13. У нас есть около 200 таких файлов для загрузки, но мы делаем это последовательно. Проблема всегда возникает с первым.

Вот журнал отладки запрошенного сбоя: https://gist.github.com/benbc/8861033.

Есть ли обновления по этой проблеме? Я вижу точно такую ​​же проблему при загрузке во вновь созданный сегмент.

Да, я считаю, что это должно быть исправлено в версии 1.3.0. Я считаю, что основная причина та же, что и https://github.com/aws/aws-cli/issues/544.

Не могли бы вы попробовать последнюю версию интерфейса командной строки. Если вы все еще видите проблему, приложите --debug logs, и я повторно поставлю проблему.

У меня все еще проблема с загрузкой на s3 ни с моего ноутбука, ни с сервера debian. Размер файла составляет около 100 МБ. Я загружаю по одному файлу следующих версий:

   aws-cli/1.3.1 Python/2.7.3 Linux/3.2.0-4-amd64
   aws-cli/1.3.1 Python/2.7.5 Darwin/13.0.0

Вот проблема, которую я получаю:

Max retries exceeded with url: <myfile>?partNumber=13&uploadId=bR1a29GdR1Qb0CW4fSDv9Vvi4PKJLF3eizWErF1SGvuMxUAh4vmHLmVQ7XjVSsFGmQi0N1U8KX5dR1uukEAMaAS8JxoQA89nJN2FFmQu2MRzIlrIzeMr4re5Zwvn3Hvv.n9IKm.OXOqy4NN87yohIA-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)

Вот журнал отладки:

Wed, 19 Mar 2014 03:28:03 GMT
/<mybucket>/<myfile>?partNumber=9&uploadId=psq_ysXJSW9eplwLTW97ueGw1BMzG2qEXVoP9XiQsm06RP0_N_J_qPS1vZf4OOj0W33Bwdey2w4KNsbEltH_GIWO3jOQbcP64MEfTMd.OSUVsmZKsMIWCxZoqdbmspb1bD0YzAbG92F9R8pQQrXdkA--
2014-03-19 11:28:03,343 - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [PUT]>
partNumber=8&uploadId=psq_ysXJSW9eplwLTW97ueGw1BMzG2qEXVoP9XiQsm06RP0_N_J_qPS1vZf4OOj0W33Bwdey2w4KNsbEltH_GIWO3jOQbcP64MEfTMd.OSUVsmZKsMIWCxZoqdbmspb1bD0YzAbG92F9R8pQQrXdkA-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 262, in _should_retry
    return self._checker(attempt_number, response, caught_exception)
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 310, in __call__
    caught_exception)
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 219, in __call__
    return self._check_caught_exception(attempt_number, caught_exception)
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 352, in _check_caught_exception
    raise caught_exception
ConnectionError: HTTPSConnectionPool(host='<mybucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /<myfile>?partNumber=8&uploadId=psq_ysXJSW9eplwLTW97ueGw1BMzG2qEXVoP9XiQsm06RP0_N_J_qPS1vZf4OOj0W33Bwdey2w4KNsbEltH_GIWO3jOQbcP64MEfTMd.OSUVsmZKsMIWCxZoqdbmspb1bD0YzAbG92F9R8pQQrXdkA-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
2014-03-19 11:28:05,374 - botocore.retryhandler - DEBUG - Retry needed, action of: 0.41042383996
2014-03-19 11:28:05,374 - botocore.endpoint - DEBUG - Response received to retry, sleeping for 0.41042383996 seconds
2014-03-19 11:28:05,579 - botocore.hooks - DEBUG - Event needs-retry.s3.UploadPart: calling handler <botocore.retryhandler.RetryHandler object at 0x308bfd0>
2014-03-19 11:28:05,580 - botocore.retryhandler - DEBUG - retry needed, retryable exception caught: HTTPSConnectionPool(host=<mybucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /<myfile>?partNumber=1&uploadId=psq_ysXJSW9eplwLTW97ueGw1BMzG2qEXVoP9XiQsm06RP0_N_J_qPS1vZf4OOj0W33Bwdey2w4KNsbEltH_GIWO3jOQbcP64MEfTMd.OSUVsmZKsMIWCxZoqdbmspb1bD0YzAbG92F9R8pQQrXdkA-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 262, in _should_retry
    return self._checker(attempt_number, response, caught_exception)
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 310, in __call__
    caught_exception)
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 219, in __call__
    return self._check_caught_exception(attempt_number, caught_exception)
  File "/usr/local/lib/python2.7/dist-packages/botocore/retryhandler.py", line 352, in _check_caught_exception
    raise caught_exception
ConnectionError: HTTPSConnectionPool(host='<mybucket>.s3.amazonaws.com', port=443): Max retries exceeded with url: /<myfile>?partNumber=1&uploadId=psq_ysXJSW9eplwLTW97ueGw1BMzG2qEXVoP9XiQsm06RP0_N_J_qPS1vZf4OOj0W33Bwdey2w4KNsbEltH_GIWO3jOQbcP64MEfTMd.OSUVsmZKsMIWCxZoqdbmspb1bD0YzAbG92F9R8pQQrXdkA-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)

По-прежнему наблюдается эта проблема при использовании aws cp и aws sync в новом сегменте. Файлы меньшего размера не обрабатываются, файлы большего размера надежно выходят из строя, как описано здесь и # 544

aws --version
aws-cli/1.3.3 Python/2.7.5+ Linux/3.8.0-35-generic
>>> print botocore.__version__
>>> 0.37.0
upload failed: ./file.tar.gz to s3://mybucket/file.tar.gz
HTTPSConnectionPool(host='mybucket.s3.amazonaws.com', port=443): Max retries exceeded with url: /file.tar.gz?partNumber=... (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
curl https://mybucket.s3.amazonaws.com
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>TemporaryRedirect</Code><Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message><RequestId>...</RequestId><Bucket>mybucket</Bucket><HostId>...</HostId><Endpoint>mybucket.s3-us-west-1.amazonaws.com</Endpoint></Error>

Как сообщали другие, теперь это работает нормально после очистки кода TemporaryRedirect -

$ curl https://mybucket.s3.amazonaws.com
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>...</RequestId><HostId>...</HostId></Error>%

Я все еще сталкиваюсь с этой проблемой с версией 1.3.4 в новом ведре Ирландии.

ubuntu@ip-172-31-40-164:~$ aws --version
aws-cli/1.3.4 Python/2.7.5+ Linux/3.11.0-15-generic

Журнал отладки: https://gist.github.com/anonymous/9814978

Такая же ошибка для меня при использовании 'aws s3 sync'
$ aws --version
aws-cli / 1.3.4 Python / 2.7.3 Linux / 3.2.0-57-виртуальный

Мое ведро находится в Ирландии.

журнал отладки: https://paste.buntux.org/?c511ef0a27305636#e1/B5RiyBuZq60LHmLNpZt59wz2zDyY2KVdjCM + mO7E =

изменить: я тестировал ведро в регионе "Стандарт США" -> без проблем
edit2: новый URL для журнала отладки https://paste.jeekajoo.eu/?c511ef0a27305636#e1/B5RiyBuZq60LHmLNpZt59wz2zDyY2KVdjCM + mO7E =

Я снова открываю этот выпуск. После отладки я могу подтвердить то, что сказали другие. Эта проблема возникает при попытке загрузить большой файл во вновь созданный сегмент, не относящийся к классическому региону.

Насколько я могу судить, CLI правильно повторяет запросы и выполняет 307 редиректов. Проблема, однако, в том, что интерфейс командной строки отправляет полный запрос, а затем ожидает ответа. Однако S3 немедленно отправит ответ 307, прежде чем мы закончим отправку тела. В конце концов он просто закроет соединение, и если мы все еще находимся в процессе потоковой передачи тела, мы не увидим ответа. Вместо этого мы получаем ConnectionError, как показано в различных журналах отладки выше.

Обычный способ решить эту проблему - использовать заголовок expect 100 continue. Однако используемый нами HTTP-клиент (запросы) не поддерживает этого. Возможно, есть способ обойти это, но мне нужно немного покопаться в библиотеке запросов, чтобы найти лучший способ решить эту проблему.

Я обновлю этот выпуск, когда узнаю больше.

Любые новости?

мои тесты показывают, что даже когда библиотека boto дает сбой, AWS CLI работает нормально. чем отличается интерфейс командной строки AWS?

Я не думаю, что в библиотеке запросов есть какие-то обходные пути. Я думаю, что наш лучший вариант (помимо написания нашего собственного HTTP-клиента, поддерживающего expect 100 continue) - это какой-то конкретный обходной путь в коде S3.

Я тоже только что ударил. Мой файл невелик, всего несколько мегабайт.

Получение этого с помощью файла CSS размером 323 КБ.

Работаем над исправлением этого, обновлюсь, когда у меня появится дополнительная информация.

Возникает такая же проблема при загрузке большого файла (3 ГБ) в S3. Загрузка небольшого файла - это нормально.

upload failed: ../../tmp/anonymousAction.log.2014-05-12.tokyo1b-http-4-1.20140513T003001 to s3://between-data-analysis-temp/anonymousAction.log.2014-05-12.tokyo1b-http-4-1.20140513T003001
HTTPSConnectionPool(host='between-data-analysis-temp.s3.amazonaws.com', port=443): Max retries exceeded with url: /anonymousAction.log.2014-05-12.tokyo1b-http-4-1.20140513T003001?partNumber=6&uploadId=Wdj8309FlXToB8mXw6JHnz8Xf8f4ADIC2SiaM3a6foSDJXH9t7xLk2uFK_EgTtjMn.OyCWdTJjP9al3rgISEltpMwj9j77Irfjc5wqssG2zgnUKhXM2gEUU5QfAuH0kuJNg8deDipYvwBkE0r7k3Qw-- (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
... 

Моя версия aws;
aws-cli / 1.3.13 Python / 2.7.3 Linux / 3.2.0-61-виртуальный

У меня периодически возникает аналогичная проблема (примерно 1 файл из 20, файлы имеют размер около 500 МБ), используя библиотеку запросов напрямую, поскольку мы работаем через наш конкретный API хранилища. Это загрузка из экземпляра EC2.

  File "/data/opi/upload.py", line 174, in upload
    response = requests.put(url, data=data, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests-2.1.0-py2.7.egg/requests /api.py", line 99, in put
    return request('put', url, data=data, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests-2.1.0-py2.7.egg/requests /api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests-2.1.0-py2.7.egg/requests /sessions.py", line 382, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests-2.1.0-py2.7.egg/requests /sessions.py", line 485, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests-2.1.0-py2.7.egg/requests /adapters.py", line 372, in send
    raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='our-bucket.s3.amazonaws.com', port=443): Max retries exceeded with url: /folder/subfolder/filename?Signature=XXX&Expires=1401262800&AWSAccessKeyId=YYY -amz-acl=private (Caused by <class 'socket.error'>: [Errno 104] Connection reset  by peer)

Просто обновление, все еще работаю над этим. На данный момент наиболее жизнеспособным подходом было создание подкласса HTTPConnection и попытка реализовать логику ожидания 100-продолжения в нашем подклассе. Затем мы вставляем это в пулы соединений urllib3, которые будут обрабатываться запросами (это HTTP-библиотека, которую мы используем).

Так что я считаю, что у меня есть потенциальное исправление, но оно требует дополнительного тестирования. Будет обновлено, когда у меня будет больше информации.

@jamesls, как только у вас появится общедоступная ветка для тестирования, я буду ее использовать :)

Всем привет,

поскольку об этом явно не говорится в потоке, вы все равно можете использовать команду «aws» для загрузки файлов в другой регион, указав параметр --region.

  • Этот НЕ ИСПОЛЬЗУЕТСЯ
    aws s3 cp ./really_big_file s3: // МОЙ-ВЕДРО /
  • Этот РАБОТАЕТ
    aws --region eu-west-1 s3 cp ./really_big_file s3: // MY-BUCKET /

@ inedit00 Спасибо! Я понятия не имел, что это связано с проблемой.

Исправление здесь: https://github.com/boto/botocore/pull/303

Но я бы хотел провести больше тестов по этому поводу. Я также хочу увидеть, что отправка заголовка expect 100-continue делает для perf.

Мы также получаем эту ошибку при копировании большого файла (~ 3 ГБ) с локального компьютера на S3 (Ирландия). Использование aws-cli / 1.3.17 Python / 2.6.6 Linux / 2.6.32-71.29.1.el6.x86_64 и botocore 0.51.0.

Просто быстрое обновление, исправление для этого было в boto / botocore # 303, однако мы обнаружили регресс, который был только в python2.6, поэтому нам пришлось вернуть PR.

Я думаю, что это все еще можно исправить, но это будет немного более агрессивно из-за внутренних изменений в httplib с python2.6 на> python2.6. Я обновлю это, когда у меня будет больше информации.

Мне удалось исправить проблему с python2.6 в предыдущем PR, чтобы исправить эту проблему. Все тесты проходят с этим изменением, и я могу подтвердить, что это устраняет проблему невозможности загрузки больших файлов во вновь созданные нестандартные корзины S3. Сообщите мне, если проблемы по-прежнему возникают, и благодарим за терпение, пока мы решали эту проблему.

Спасибо за исправление @jamesls. В каком выпуске awscli будет / будет это исправление?

Это доступно в последней версии CLI (v1.3.18).

Кроме того, если кому-то понадобится отлаживать это в будущем, вы увидите журналы отладки, связанные с заголовком expect 100 continue:

2014-06-23 10:40:32,495 - Thread-4 - botocore.hooks - DEBUG - Event before-call.s3.UploadPart: calling handler <function add_expect_header at 0x10d3469b0>
2014-06-23 10:40:32,495 - Thread-4 - botocore.handlers - DEBUG - Adding expect 100 continue header to request.
2014-06-23 10:40:32,500 - Thread-4 - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [PUT]>
2014-06-23 10:40:32,502 - Thread-4 - botocore.awsrequest - DEBUG - Waiting for 100 Continue response.
2014-06-23 10:40:32,506 - Thread-4 - botocore.awsrequest - DEBUG - Received a non 100 Continue response from the server, NOT sending request body.
2014-06-23 10:40:32,512 - Thread-4 - botocore.awsrequest - DEBUG - Redirect received, rewinding stream: <awscli.customizations.s3.utils.ReadFileChunk object at 0x10d7f1450>
2014-06-23 10:40:32,512 - Thread-4 - botocore.awsrequest - DEBUG - Rewinding stream: <awscli.customizations.s3.utils.ReadFileChunk object at 0x10d7f1450>
2014-06-23 10:40:32,513 - Thread-4 - botocore.awsrequest - DEBUG - Waiting for 100 Continue response.
2014-06-23 10:40:32,533 - Thread-4 - botocore.awsrequest - DEBUG - 100 Continue response seen, now sending request body.
...
2014-06-23 10:40:34,530 - Thread-4 - awscli.errorhandler - DEBUG - HTTP Response Code: 200

Я считаю, что это проблема № 823.

Это похоже на другую проблему. В частности, другая ошибка.

получил ту же проблему.

upload failed: images1/1103/142_b2d35e8005321b582ce891ca835df65d_75.jpg to s3://opgirl-v2/images/images1/1103/142_b2d35e8005321b582ce891ca835df65d_75.jpg A client error (RequestTimeout) occurred when calling the PutObject operation: Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed.
Cleaning up. Please wait...
upload failed: images1/1103/142_d0754d4c8708dc2d7c68cc27da2ad2fa_100.jpg to s3://opgirl-v2/images/images1/1103/142_d0754d4c8708dc2d7c68cc27da2ad2fa_100.jpg The write operation timed out
upload failed: images1/1103/1430_0a6a493f08b693789cba32fbbc6ade83_75.jpg to s3://opgirl-v2/images/images1/1103/1430_0a6a493f08b693789cba32fbbc6ade83_75.jpg ('Connection aborted.', error(104, 'Connection reset by peer'))
# aws --version
aws-cli/1.9.15 Python/2.6.6 Linux/3.2.0-0.bpo.1-amd64 botocore/1.3.15

Достигаете предела производительности AWS s3?
https://stackoverflow.com/questions/23397460/error-handling-boto-error-104-connection-reset-by-peer

У меня такая же проблема. Эта ветка довольно старая. Эта проблема все еще исследуется?

('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

# aws --version aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1055-aws botocore/1.4.70

Столкнулся с той же проблемой

`` ''

aws s3 cp /opt/tradetracker/dataStream/tracker-hits-2018-04-30_11:00:00.log s3: // tt-feeder-dumps
ошибка загрузки: ../dataStream/tracker-hits-2018-04-30_11:00:00.log в s3: // tt-feeder-dumps / tracker-hits-2018-04-30_11: 00: 00.log ( 'Connection aborted.', ConnectionResetError (104, 'Connection reset by peer'))

ls -hal /opt/tradetracker/dataStream/tracker-hits-2018-04-30_11:00:00.log
-rw-rw-rw- 1 www-data www-data 13M 30 апреля 13:56 /opt/tradetracker/dataStream/tracker-hits-2018-04-30_11:00:00.log

aws --version
aws-cli / 1.11.13 Python / 3.5.2 Linux / 4.4.0-1049-aws botocore / 1.4.70
`` ''

То же. +1
Размер файла: 1 г
aws-cli/1.15.12 Python/3.4.3 Linux/4.4.0-71-generic botocore/1.10.12


Для моей установки это было решено путем установки:
s3 =
max_concurrent_requests = 5
max_bandwidth = 210 КБ / с

в файле .aws / config для профиля, который я использовал. Здесь: https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#

У меня такая же проблема, когда я пытался загрузить файл в корзину s3 с помощью пакета python boto3.

Раньше он работал нормально около 4 дней назад, и с тех пор возникли проблемы с загрузкой.

У меня такая же проблема с недавно созданным ведром в регионе eu-west-1.

Используемая команда:
aws s3 sync . s3://<bucket_name> --profile test --region eu-west-1

$ aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.13.0-45-generic botocore/1.4.70

Связана ли эта проблема с сетью, к которой я подключен? Загрузка не удалась, когда я подключился к адаптеру 4G, тогда как когда я был подключен к своему Wi-Fi-роутеру, все было в порядке.

Но ключ 4G давал мне скорость 10 Мбит / с. Итак, не уверен, в чем проблема

@uldall Если вы еще не решили это, для меня это было исправлено путем установки последней версии aws-cli - последняя версия на apt-get устарела, поэтому вы должны установить с помощью pip. Вот инструкции:
https://www.slashroot.in/how-to-install-and-configure-aws-cli-on-ubuntu-16-04

На Ubuntu 18
Установить python 3
sudo apt-get install python3-pip
pip3 установить awscli --upgrade --user
aws s3 синхронизация ./ s3: // mybucket01

https://linuxhint.com/install_aws_cli_ubuntu/
https://linuxhint.com/install_aws_cli_ubuntu/

Была ли эта страница полезной?
0 / 5 - 0 рейтинги