在Camel(2.15.0)中调用SFTP(docs):
String uri = "sftp://foo.co.uk?username=Me+Admin&privateKeyFile=/my/id_rsa&knownHostsFile=/my/known_hosts&preferredAuthentications=publickey"
producerTemplate.sendBodyAndHeader(uri, fileContents, "CamelFileName", fullFilePath);
SFTP尝试用户Me Admin
的结果。显然,+
被空格所取代
我尝试对此进行网址编码(Me%2DAdmin
),仍然替换为空格(Me Admin
)
尝试对其进行两次编码,现在SFTP尝试用户名Me%2DAdmin
任何人都知道如何为用户名为+
的用户获取Camel到SFTP?感谢。
答案 0 :(得分:1)
始终用RAW()标记围住用户名/密码,这总是很好。例如sftp:user @ hostname?password = RAW(password @ 123)
答案 1 :(得分:0)
好的回答我自己的问题,将请求网址从sftp://host?username=user
更改为sftp://user@host
可以解决问题。用户名仍然需要编码一次:
String uri = "sftp://Me%2DAdmin@foo.co.uk?privateKeyFile=/my/id_rsa&knownHostsFile=/my/known_hosts&preferredAuthentications=publickey"
producerTemplate.sendBodyAndHeader(uri, fileContents, "CamelFileName", fullFilePath);