2

I started getting this error when trying to put a test csv to s3:

HTTPClientError: An HTTP Client raised and unhandled exception: Timeout value connect was Timeout(connect=60, read=60, total=None), but it must be an int, float or None.

It was working fine at first and then just started giving this seemingly out of nowhere. I have the same script sitting on an EC2 server and it works fine from there, but does not work locally

import boto3
import pandas as pd
from datetime import datetime, timedelta
from io import StringIO

ACCESS_KEY_ID = 'removed'
ACCESS_SECRET_KEY = 'removed'
region_name = 'us-west-2'

client = boto3.client( service_name = "s3", region_name =region_name ,
                                                aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_SECRET_KEY
                                              ) 
s3_resource = boto3.resource('s3', aws_access_key_id=ACCESS_KEY_ID,
                               aws_secret_access_key=ACCESS_SECRET_KEY)

dest_bucket = 'mybucket'

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
                             'Parrot', 'Parrot'],
                    'Max Speed': [380., 370., 24., 26.]})

csv_buffer = StringIO()
df.to_csv(csv_buffer, index = False)

s3_resource.Object(dest_bucket, 'test.csv').put(Body=csv_buffer.getvalue())

Does anybody know what might be causing this? Full traceback

    Traceback (most recent call last):

  File "<ipython-input-23-6e25ea0d6e73>", line 30, in <module>
    s3_resource.Object(dest_bucket, 'ec2-test/' + 'ec2_testLIVe.csv').put(Body=csv_buffer.getvalue())

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\boto3\resources\factory.py", line 520, in do_action
    response = action(self, *args, **kwargs)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\boto3\resources\action.py", line 83, in __call__
    response = getattr(parent.meta.client, operation_name)(**params)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\client.py", line 357, in _api_call
    return self._make_api_call(operation_name, kwargs)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\client.py", line 648, in _make_api_call
    operation_model, request_dict, request_context)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\client.py", line 667, in _make_request
    return self._endpoint.make_request(operation_model, request_dict)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\endpoint.py", line 102, in make_request
    return self._send_request(request_dict, operation_model)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\endpoint.py", line 137, in _send_request
    success_response, exception):

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\endpoint.py", line 231, in _needs_retry
    caught_exception=caught_exception, request_dict=request_dict)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\hooks.py", line 356, in emit
    return self._emitter.emit(aliased_event_name, **kwargs)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\hooks.py", line 228, in emit
    return self._emit(event_name, kwargs)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\hooks.py", line 211, in _emit
    response = handler(**kwargs)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\retryhandler.py", line 183, in __call__
    if self._checker(attempts, response, caught_exception):

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\retryhandler.py", line 251, in __call__
    caught_exception)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\retryhandler.py", line 269, in _should_retry
    return self._checker(attempt_number, response, caught_exception)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\retryhandler.py", line 317, in __call__
    caught_exception)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\retryhandler.py", line 223, in __call__
    attempt_number, caught_exception)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\retryhandler.py", line 359, in _check_caught_exception
    raise caught_exception

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\endpoint.py", line 200, in _do_get_response
    http_response = self._send(request)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\endpoint.py", line 244, in _send
    return self.http_session.send(request)

  File "C:\Users\mkjacks5\AppData\Local\Continuum\anaconda3\lib\site-packages\botocore\httpsession.py", line 298, in send
    raise HTTPClientError(error=e)

Windows machine, python 3. Looks like it is complaining about the connect argument value not being a number, but it says 60? Couldn't find anything about this when googling, appreciate any help

L Xandor
  • 1,659
  • 4
  • 24
  • 48

0 Answers0