Erlang ssh_sftp returns eoptions password,这个错误是什么意思?
Erlang ssh_sftp returns eoptions password, what does this error mean?
我的代码现在非常简单,我从 elixir 调用 erlang。
iex> :ssh.start()
iex> :ssh_sftp.start_channel("192.168.1.183", 22, [{:user, "username"}, {:password, "password"}])
:ssh.start()
returns:ok
,但:ssh_sftp.start_channel
returns{:error, {:eoptions, {:password, "password"}}}
。如果我删除密码元组,它就会抱怨用户元组。这让我觉得我从根本上误解了 erlang 文档。我想要一些帮助来理解我做错了什么。 ssh_sftp 文档位于 ssh_sftp
{:eoptions, _}
返回 when an option passed contains a value of invalid type. You're getting this error because :password
必须是一个列表(Erlang String 或 Elixir charlist)。 :user
并且主机名也必须是 charlists。以下应该有效:
:ssh_sftp.start_channel('192.168.1.183', 22, [{:user, 'username'}, {:password, 'password'}])
This makes me thing that I'm fundamentally misunderstanding the erlang documentation.
Erlang 中的双引号字符串是字符列表,而不是二进制文件。如果您在 Erlang 代码中看到双引号字符串,则需要在 Elixir 中使用单引号字符串。
我的代码现在非常简单,我从 elixir 调用 erlang。
iex> :ssh.start()
iex> :ssh_sftp.start_channel("192.168.1.183", 22, [{:user, "username"}, {:password, "password"}])
:ssh.start()
returns:ok
,但:ssh_sftp.start_channel
returns{:error, {:eoptions, {:password, "password"}}}
。如果我删除密码元组,它就会抱怨用户元组。这让我觉得我从根本上误解了 erlang 文档。我想要一些帮助来理解我做错了什么。 ssh_sftp 文档位于 ssh_sftp
{:eoptions, _}
返回 when an option passed contains a value of invalid type. You're getting this error because :password
必须是一个列表(Erlang String 或 Elixir charlist)。 :user
并且主机名也必须是 charlists。以下应该有效:
:ssh_sftp.start_channel('192.168.1.183', 22, [{:user, 'username'}, {:password, 'password'}])
This makes me thing that I'm fundamentally misunderstanding the erlang documentation.
Erlang 中的双引号字符串是字符列表,而不是二进制文件。如果您在 Erlang 代码中看到双引号字符串,则需要在 Elixir 中使用单引号字符串。