嗨,我下面有关于SFTP组件的查询,如果你们能帮我解决这个问题,那将是一个很好的帮助:
1)能否得到SFTP组件拾取的文件的大小?我需要根据文件的大小来限制传输。( 2)能否得到SFTP组件获取的文件数和文件名?( 3)是否正确: SFTP组件从服务器收集所有文件并保存在内存中,并进行1×1处理直到完成所有文件? 4)如果服务器有5个文件,SFTP组件可以并行处理所有5个文件,而不是1x1?
发布于 2016-06-09 14:31:35
Mule不像使用文件那样填充SFTP的文件大小字段。在这个问题上有Jira门票开放,但是MuleSoft称它是一种增强,而不是优先考虑。我不同意。也许ping MuleSoft,如果足够多的用户这么做,他们可能会提高优先级,并解决它。它们在内部使用大小,它们只是不像文件连接器那样在外部公开它。
不,不完全是。它一次只给他们一个,而不是一个列表。
3&4-只有当您告诉整个文件不要流或做其他事情时,它才会将整个文件加载到内存中,比如强制加载内存的弹出到字符串转换器。文件或文件流被传回1乘1,但除非您限制线程处理并使流同步,否则它将转到asych和多线程,并并行处理多个文件。流默认为asych,子流是同步的。
您可以使用SFTP端点检索文件,然后使用Java或脚本调用来获取文件的属性并进行筛选,只处理实际感兴趣的文件,例如大于最小大小的文件。这似乎更符合你在第1点中寻找的内容。还有其他选择,但这将是更直截了当的,其他人我可以很快想到。
发布于 2016-06-09 16:07:06
我找到了一种获取文件大小的方法,如果我们在其中提供转换器-refs=“Object_to_Byte_Array”,然后用#payload.size()来获得字节中的文件大小?这会否引起任何问题?
https://stackoverflow.com/questions/37725727
复制相似问题