簡體   English   中英

python2.7中的Boto3錯誤,但在3.5版中有效

[英]Boto3 Error in python2.7 but works in 3.5

因此,我正在使用boto3訪問s3服務。 當我使用此代碼時,它可以在python3.5上正常工作,但在2.7中拋出此異常,為什么? 我想用2.7來實現它,因為我的整個項目都基於2.7。

import boto3

conn = boto3.resource('s3', region_name='eu-west-1', endpoint_url=HOST, aws_access_key_id=KEY, aws_secret_access_key=SECRET)

conn.create_bucket(Bucket="pqlamy194762123")

在2.7中,拋出此異常:

Traceback (most recent call last):
  File "s3connector.py", line 22, in <module>
    s.createBucket('pqlamy1947621234')
  File "s3connector.py", line 15, in createBucket
    self.s3.create_bucket(Bucket=name ,CreateBucketConfiguration={'LocationConstraint': 'eu-west-1'})
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/client.py", line 310, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/client.py", line 586, in _make_api_call
    operation_model, request_dict)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 141, in make_request
    return self._send_request(request_dict, operation_model)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 170, in _send_request
    success_response, exception):
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 249, in _needs_retry
    caught_exception=caught_exception, request_dict=request_dict)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/hooks.py", line 227, in emit
    return self._emit(event_name, kwargs)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/hooks.py", line 210, in _emit
    response = handler(**kwargs)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 183, in __call__
    if self._checker(attempts, response, caught_exception):
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 251, in __call__
    caught_exception)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 277, in _should_retry
    return self._checker(attempt_number, response, caught_exception)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 317, in __call__
    caught_exception)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 223, in __call__
    attempt_number, caught_exception)
  File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 359, in _check_caught_exception
    raise caught_exception
botocore.vendored.requests.exceptions.ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))

查看錯誤消息,似乎並不是專門針對python版本的問題,因為Boto3開箱即用地支持Python 2.7。 因此,我做了一個快速檢查清單,該清單可能會(或不會)幫助您找到問題的原因

  • 您是否在同一環境下嘗試過這兩個版本的Python? 104錯誤可能來自多種原因,包括網絡和服務器端臨時問題。
  • 您是否正在使用boto3的穩定版本? 嘗試使用最新的穩定版本(在撰寫本文時為1.4.4
  • 如果以前的版本不起作用,請嘗試使用以前的穩定版本。 有時,舊版本中的這些錯誤是在較新版本中引入的。
  • 如果所有方法均無效,請嘗試提交錯誤。 Boto團隊得到了Amazon的部分支持,並且對應用程序中斷問題做出了快速響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM