【问题标题】:Camel FTPS Component Auto Create DirectoryCamel FTPS 组件自动创建目录
【发布时间】:2015-12-02 16:06:13
【问题描述】:

我正在使用 Camel FTP 组件 (FTPS) 连接到 IBM iSeries,他们的日志中充满了以下语句:

拒绝 EXPUSER 到 / LONDON 类型 *IFS。函数 CRT_DIR。 IP 地址

我知道被拒绝是因为用户没有创建目录的权限,但是我怎样才能完全阻止这种情况发生呢?是否可以添加一个选项来完全阻止这种情况发生,因为我不需要创建目录。

当前路线是

from(ftps://user@10.140.5.58:990//london/luprocess/to_embargo?password=password
&binary=true&move=.done&siteCommand=NAMEFMT 1&isImplicit=true&passiveMode=true
&timeout=10000&ftpClient.keyStore.file=C:/keys/key.jks
&ftpClient.keyStore.password=password&ftpClient.keyStore.keyPassword=password)
.to(file://C:/messageOut);

【问题讨论】:

  • 好吧,如果我们不知道骆驼代码的外观,这有点难以帮助。
  • 现在将骆驼路线添加到问题中。
  • 它试图创建哪个目录是不允许的?从我所见,它似乎是 move 参数中所述的“.done”目录。如果系统不允许创建它,那么您需要更改您的路线并删除该参数或授予它访问权限。
  • 问题是已经在 iSeries 上创建了 Londonluprocess 目录,但是 Camel FTP 组件正在尝试创建它们并获取拒绝访问。这样做的原因是它没有创建目录的权限,但这不是必需的,因为它们已经存在。有没有办法删除这个,所以创建目录命令不运行?
  • 尝试使用 stepwise=false

标签: java ftp apache-camel ftps


【解决方案1】:

如果它们已经退出,Camel 将不会创建源轮询文件夹。这是默认行为。我认为骆驼用户无权在源文件夹中创建目录 .done 。要么是路径不正确,要么是路径不正确,因此它会尝试创建丢失的文件夹。

编辑: 所以这就是骆驼文档所说的:

对于 Camel 2.16 之前的 Camel 版本,directoryName 必须存在 已经因为这个组件不支持 autoCreate 选项 (文件组件所做的)。原因是它的FTP 管理员(FTP 服务器)任务以正确设置用户帐户,以及 具有正确文件权限等的主目录。

对于 Camel 2.16,支持 autoCreate 选项。当消费者开始时, 在安排轮询之前,还有额外的 FTP 操作 执行以创建为端点配置的目录。默认 autoCreate 的值为 true。

因此,如果您使用低于 2.16 的版本,它将不会为您创建目录。如果您使用的是 2.16 版,请设置 autoCreate=false。

顺便说一句,你的路径中有一个双斜线。

10.140.5.58:990//london

在文档中是单斜杠。

10.140.5.58:990/london

【讨论】:

  • 已创建 .done 文件夹并将文件移入其中,以便一切正常,但服务器端的日志显示创建目录命令正在尝试运行/London 然后是 /luprocess。这是我想要删除或至少理解的内容。
  • 也评论了你的斜线。
  • 我使用的是 2.16 之前的版本,所以它不应该尝试为我创建目录。我希望它应该找到目录并完成命令,但事实并非如此。
  • 你注意到斜线了吗?
  • 是的,我看到了,但我怀疑是这个。服务器日志中的函数 Function CRT_DIR 听起来像是一个命令正在运行。
猜你喜欢
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 2022-12-08
相关资源
最近更新 更多