title: How to get around SlowDown Errors with AWS S3 put object
body: <p>I am trying to access a file and update it in S3 with boto but continue to get slowdown errors even after pausing in between requests as per code below. How do I get around this ? </p>
  
  <pre><code>body = b'Here we have some more data'
  s3.put_object(Body=body,Bucket=bucket, Key=key)
  time.sleep(10)
  response = s3.get_object(Bucket=bucket, Key=key)
  time.sleep(10)
  print(response["Body"].read().decode('utf-8'))
  currFile = response["Body"].read().decode('utf-8')
  newFile = currFile + "\n" + "New Stuff!!!"
  newFileB = newFile.encode('utf-8')
  time.sleep(60)
  s3.put_object(Body=newFileB,Bucket=bucket, Key=key)
  time.sleep(10)
  response = s3.get_object(Bucket=bucket, Key=key)
  print(response["Body"].read().decode('utf-8'))
  </code></pre>
  
  <p>Here is the error : </p>
  
  <pre><code>Details
  The area below shows the result returned by your function execution.
  {
  "errorMessage": "An error occurred (SlowDown) when calling the PutObject operation (reached max retries: 4): Please reduce your request rate.",
  "errorType": "ClientError",
  "stackTrace": [
  [
  "/var/task/lambda_function.py",
  43,
  "lambda_handler",
  "raise e"
  ],
  [
  "/var/task/lambda_function.py",
  20,
  "lambda_handler",
  "s3.put_object(Body=body,Bucket=bucket, Key=key)"
  ],
  [
  "/var/runtime/botocore/client.py",
  314,
  "_api_call",
  "return self._make_api_call(operation_name, kwargs)"
  ],
  [
  "/var/runtime/botocore/client.py",
  612,
  "_make_api_call",
  "raise error_class(parsed_response, operation_name)"
  ]
  ]
  }
  </code></pre>