使用erlcloud列出S3桶时超时错误



我试图在我的应用程序中使用S3上传的erlcloud库。作为测试,我试图让它通过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

我已经检查了inets, sslerlcoud都已启动,并且我知道凭证工作正常,因为我已经用irb中的Ruby库以类似的方式测试了它们。

我已经尝试配置一个更长的超时,但无论我设置多高,我仍然得到这个错误。

任何想法?或者我可以采取什么方法来调试它?

我可以模拟同样的错误,并且可以通过将双引号替换为单引号来解决它。

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

假设使用了双引号,它可能是由string和char-list之间的类型不匹配引起的。

最新更新