我正在尝试在我的应用程序中使用 erlcloud 库进行 S3 上传。作为测试,我试图让它通过 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
、 ssl
和 erlcoud
都已启动,并且我知道凭据工作正常,因为我已经使用 irb
中的 Ruby 库以类似的方式测试了它们。我试过用更长的超时时间配置它,但无论我设置多高,我仍然会收到这个错误。
有任何想法吗?或者我可以采取的调试方法?
最佳答案
我可以模拟相同的错误,并且可以通过用单引号替换双引号来解决它。
> iex(4)> s3 = :erlcloud_s3.new('KEY_ID', 'SECRET_KEY')
> iex(5)> :erlcloud_s3.list_buckets(s3)
假设使用了双引号,它可能是由字符串和字符列表之间的类型不匹配引起的。
关于amazon-web-services - 使用 erlcloud 列出 S3 存储桶时出现超时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24976685/