Timeout error while listing S3 buckets using erlcloud

I am trying to use the erlcloud library to load S3 in my application. As a test, I try to get it to list buckets using the console iex:

iex(4)> s3 = :erlcloud_s3.new("KEY_ID", "SECRET_KEY")
...
iex(5)> :erlcloud_s3.list_buckets(s3)
** (ErlangError) erlang error: {:aws_error, {:socket_error, :timeout}}
    (erlcloud) src/erlcloud_s3.erl:909: :erlcloud_s3.s3_request/8
    (erlcloud) src/erlcloud_s3.erl:893: :erlcloud_s3.s3_xml_request/8
    (erlcloud) src/erlcloud_s3.erl:238: :erlcloud_s3.list_buckets/1

I checked that everything inets, ssland erlcoudeverything is running, and I know that the credentials work fine, because I tested them in the same way with the Ruby library in irb.

I tried setting it up with a longer timeout, but no matter how high I set it, I still get this error.

Any ideas? Or approaches that I could take to debug this?

+4
source share
1 answer

I could simulate the same error and could resolve it by replacing the double quote with a single quote.

> iex(4)> s3 = :erlcloud_s3.new('KEY_ID', 'SECRET_KEY')
> iex(5)> :erlcloud_s3.list_buckets(s3)

Assuming a double quote is used, this could be caused by a type mismatch between the string and char -list.

+8
source

All Articles