Aws-cli: فشل تحميل الملفات إلى S3 من مثيلات EC2 في بعض أنواع المثيلات

تم إنشاؤها على ٦ فبراير ٢٠١٤  ·  41تعليقات  ·  مصدر: aws/aws-cli

لدينا مشكلة غريبة جدا. نقوم بتحميل ملفات كبيرة (10 ميجا) من مثيل 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 مليون ملف. لقد وجدنا أنه يمكن استنساخه حتى حوالي مليون. أقل بكثير من هذا ويعمل بشكل جيد في كل مرة.

أي أفكار حول ما يجري ستكون محل تقدير كبير.

bug

التعليق الأكثر فائدة

uldall إذا لم تكن قد قمت بحل هذا بالفعل ، فقد تم إصلاح ذلك بالنسبة لي عن طريق تثبيت أحدث إصدار من aws-cli - أحدث إصدار على apt-get قديم ، لذا يجب عليك التثبيت باستخدام النقطة. إليك التعليمات:
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 لهذا ، فسيساعدك ذلك في استكشاف الأخطاء وإصلاحها.

أيضًا كم عدد الملفات التي تحمّلها في وقت واحد يبلغ 10 ملايين تقريبًا؟

أواجه أيضًا مشكلات في التحميل إلى 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.

هل يمكنك المحاولة باستخدام أحدث إصدار من CLI. إذا كنت لا تزال ترى المشكلة ، فيرجى إرفاق سجلات --debug وسأقوم بإعادة فتح المشكلة.

ما زلت أعاني من تحميل هذه المشكلة إلى s3 ، لا من جهاز الكمبيوتر المحمول ولا من خادم دبيان. حجم الملف حوالي 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"
$ aws - الإصدار
aws-cli / 1.3.4 Python / 2.7.3 Linux / 3.2.0-57-virtual

دلو بلدي في أيرلندا.

سجل تصحيح الأخطاء: https://paste.buntux.org/؟c511ef0a27305636#e1/B5RiyBuZq60LHmLNpZt59wz2zDyY2KVdjCM + mO7E =

تحرير: لقد اختبرت على دلو في منطقة "معيار الولايات المتحدة" -> لا مشكلة
edit2: عنوان url جديد لسجل التصحيح https://paste.jeekajoo.eu/؟c511ef0a27305636#e1/B5RiyBuZq60LHmLNpZt59wz2zDyY2KVdjCM + mO7E =

أنا أعيد فتح هذه القضية. بعد تصحيح هذا يمكنني تأكيد ما قاله الآخرون. توجد هذه المشكلة عند محاولة تحميل ملف كبير إلى حاوية تم إنشاؤها حديثًا ليست في المنطقة الكلاسيكية.

من خلال ما يمكنني قوله ، فإن CLI يعيد محاولة الطلبات بشكل صحيح ويتبع 307 عمليات إعادة توجيه. ومع ذلك ، فإن المشكلة تكمن في أن CLI يرسل الطلب _entire_ ثم ينتظر الرد. ومع ذلك ، سترسل S3 على الفور استجابة 307 قبل أن ننتهي من إرسال النص. في النهاية سيغلق الاتصال فقط ، وإذا كنا لا نزال في طور تدفق الجسم ، فلن نرى الاستجابة. بدلاً من ذلك ، نحصل على خطأ ConnectionError كما هو موضح في سجلات تصحيح الأخطاء المختلفة أعلاه.

تتمثل الطريقة العادية لمعالجة هذا الأمر في استخدام توقع متابعة رأس 100. ومع ذلك ، فإن عميل HTTP الذي نستخدمه (الطلبات) لا يدعم هذا. قد تكون هناك طريقة للتغلب على هذا ، لكنني سأحتاج إلى إجراء بعض البحث في مكتبة الطلبات لمعرفة أفضل طريقة لإصلاح هذه المشكلة.

سوف أقوم بتحديث هذه المشكلة عندما أعرف المزيد.

أى اخبار؟

تُظهر اختباراتي أنه حتى في حالة فشل مكتبة boto ، فإن AWS CLI يعمل بشكل جيد. ما الذي يفعله AWS CLI بشكل مختلف؟

لا أعتقد أن هناك أي طرق لحلها في مكتبة الطلبات. أعتقد أن أفضل خيار لدينا (بصرف النظر عن كتابة عميل HTTP الخاص بنا والذي يدعم استمرار 100) هو بعض الحلول المحددة في كود 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-cli / 1.3.13 Python / 2.7.3 Linux / 3.2.0-61-virtual

أواجه مشكلة مماثلة بشكل متقطع (حوالي ملف واحد من كل 20 ملفًا ، يبلغ حجم الملفات حوالي 500 ميجابايت) باستخدام مكتبة الطلبات مباشرةً أثناء عملنا من خلال واجهة برمجة تطبيقات التخزين الخاصة بنا. يتم تحميل هذا من مثيل 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 param.

  • هذا واحد فشل
    aws s3 cp ./really_big_file s3: // MY-BUCKET /
  • هذا واحد يعمل
    aws - المنطقة eu-west-1 s3 cp ./really_big_file s3: // MY-BUCKET /

@ inedit00 شكرا! لم يكن لدي أي فكرة أن هذا مرتبط بالمشكلة.

الإصلاح لهذا هنا: https://github.com/boto/botocore/pull/303

لكني أود إجراء المزيد من الاختبارات على هذا. أريد أيضًا أن أرى ما يفعله إرسال العنوان المتوقع 100 متابعة إلى الأداء.

نحصل على هذا الخطأ أيضًا عند نسخ ملف كبير (حوالي 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 لذلك كان علينا إعادة العلاقات العامة.

أعتقد أنه لا يزال من الممكن إصلاح هذا ، لكنه سيكون أكثر تغلغلاً قليلاً بسبب التغييرات الداخلية في HTplib من python2.6 إلى> python2.6. سوف أقوم بتحديث هذا عندما يكون لدي المزيد من المعلومات.

لقد تمكنت من إصلاح مشكلة python2.6 في العلاقات العامة السابقة لإصلاح هذه المشكلة. تمر جميع الاختبارات مع هذا التغيير ، ويمكنني أن أؤكد أن هذا يعمل على إصلاح مشكلة عدم القدرة على تحميل الملفات الكبيرة إلى حاويات S3 غير القياسية المنشأة حديثًا. يُرجى إعلامي إذا كنت لا تزال تواجه مشكلات ، ونشكرك على سعة صدرك أثناء حل هذه المشكلة.

شكرا على الإصلاح jamesls. ما هو إصدار awscli / هل سيكون هذا الإصلاح فيه؟

يتوفر هذا في أحدث إصدار من CLI (v1.3.18).

أيضًا ، إذا احتاج أي شخص إلى تصحيح هذا الأمر في المستقبل ، فسترى سجلات تصحيح الأخطاء المتعلقة برأس المتابعة المتوقع 100:

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-hit-2018-04-30_11: 00: 00.log ( "تم إحباط الاتصال."، ConnectionResetError (104 ، "إعادة تعيين الاتصال بواسطة النظير"))

ls -hal /opt/tradetracker/dataStream/tracker-hits-2018-04-30_11:00:00.log
-rw-rw-rw- 1 www-data www-data 13M Apr 30 13:56 /opt/tradetracker/dataStream/tracker-hits-2018-04-30_11:00:00.log

AWS - الإصدار
aws-cli / 1.11.13 Python / 3.5.2 Linux / 4.4.0-1049-aws botocore / 1.4.70
""

كما سبق. +1
حجم الملف: 1G
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 bucket باستخدام حزمة boto3 python.

كانت تعمل بشكل جيد حتى قبل حوالي 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 ، بينما عندما كنت متصلاً بجهاز توجيه wifi ، كان كل شيء على ما يرام.

لكن ، 4G dongle كان يعطيني سرعة 10 ميجابت في الثانية. لذا ، لست متأكدًا من مكان المشكلة

uldall إذا لم تكن قد قمت بحل هذا بالفعل ، فقد تم إصلاح ذلك بالنسبة لي عن طريق تثبيت أحدث إصدار من aws-cli - أحدث إصدار على apt-get قديم ، لذا يجب عليك التثبيت باستخدام النقطة. إليك التعليمات:
https://www.slashroot.in/how-to-install-and-configure-aws-cli-on-ubuntu-16-04

على أوبونتو 18
قم بتثبيت python 3
sudo apt-get install python3-pip
pip3 تثبيت awscli - ترقية - المستخدم
aws s3 sync ./ s3: // mybucket01

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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات