Pentaho - 在 FTP 上移动文件不起作用
Posted
技术标签:
【中文标题】Pentaho - 在 FTP 上移动文件不起作用【英文标题】:Pentaho - move files on FTP not working 【发布时间】:2018-06-25 13:48:05 【问题描述】:我的工作必须将 CSV 文件移动到 FTP 服务器上的“已处理”文件夹中,并在文件名上附加日期和时间戳。
我现在有以下工作:
在“移动文件”选项中,我的源地址和目标地址的格式为:
ftp://username:password@ftp_source_address
ftp://username:password@ftp_destination_address
该过程一直成功,直到使用 FTPS 获取文件步骤,然后才停止。如果我将计算机上的本地地址作为目标地址,它将起作用。
我还尝试了“复制或移动结果文件名”操作,它的行为方式完全相同。我在这里想念什么?
我是 pentaho 的新手,如果有任何帮助,我将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:Get a File with FTPS
作业条目通过将文件从远程服务器拉到运行 Pentaho 的本地服务器来工作。它不会将远程服务器上的文件移动到远程服务器上的不同位置。 Move Files
作业条目可能会失败(或根本不做任何事情),因为文件不在您期望的位置,因为 Get a File with FTPS
作业条目没有按照您期望的方式运行。
根据您在附图中显示的设计,我认为您可以完全删除 Get a File with FTPS
并只使用 Move Files
工作条目。
【讨论】:
嗯,我的要求是将文件拉到运行 pentaho 的本地服务器,然后将该文件移动到 FTP 上的另一个文件夹。所以我想我需要Get a File with FTPS
【参考方案2】:
“通过 FTPS 获取文件”步骤具有内置的检索后移动功能,适用于通过它下载的所有文件。
在“移动到文件夹变量”区域中,插入所需的 FTPS 路径,例如 \source\backup\$variables。 该字段接受变量,因此如果您也选中“创建文件夹”选项,您甚至可以动态创建备份文件夹。
【讨论】:
我需要给文件名加上时间戳。所以这对我不起作用。【参考方案3】:我有一种类似的需求并解决了,我先声明一下:
我需要在本地服务器(ETL 服务器)中创建一个 csv 文件并发送回远程服务器位置。但在此之前,我需要将已经存在的文件存档到远程服务器中的单独(存档)文件夹中。
我使用了所有可能的方法来解决,但按照下面定义的工作完成:
第 1 步:使用“使用 FTP 获取文件”将旧文件从远程获取到本地。在同一个步骤定义中,一旦传输旧文件,我就会删除它。
第 2 步:使用 'Put a file with FTP' 在远程服务器中名为 'Archived' 的文件夹中执行反向操作,并以同样的方式从本地服务器中删除文件
第 3 步:创建一个转换来完成其余工作以创建一个 csv 文件并将其放置到本地服务器。
因此,之前的旧文件被移动并存储在“存档”文件夹中,而新文件则从转换中生成。它也有时间戳插入过程,所以它可能满足需要。希望这会有所帮助!!!
以下是工作及其外观: Pentaho JOB
【讨论】:
以上是关于Pentaho - 在 FTP 上移动文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
JSON.parse() 在 pentaho 的 javascript 中不起作用
如何在 Pentaho 中使用 SecureFTP 作业步骤在放置文件中添加变量?
golang FTP PASS(密码)命令在本地工作,但在 ECS 上运行时不起作用