[
https://issues.apache.org/jira/browse/CAMEL-4356?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marco Crivellaro updated CAMEL-4356:
------------------------------------
Comment: was deleted
(was: I agree fastExistsCheck is more descriptive option name)
> faster way of testing for file existence
> ----------------------------------------
>
> Key: CAMEL-4356
> URL: https://issues.apache.org/jira/browse/CAMEL-4356
> Project: Camel
> Issue Type: Improvement
> Components: camel-ftp
> Affects Versions: 2.8.0
> Reporter: Marco Crivellaro
> Assignee: Willem Jiang
> Priority: Minor
>
> when storing a file the ftp component checks if the file exists in the
> endpoint, this is done by listing the content of the destination folder and
> looping through all files listed.
> the list operation takes a long time when the destination folder contains
> hundreds of files.
> instead of listing for all files the component can simply list for the file
> it is interested on, this way the number of files contained in destination
> folder won't affect the time it takes the producer to process the exchange.
> I currently have a case where delivering to an endpoint is taking more than a
> minute because of this issue.
> Both ftp and sftp libraries used supports listing for a single file so the
> changes would be the following:
> {code:title=FtpOperations.java}
> public boolean existsFile(String name) throws
> GenericFileOperationFailedException {
> String[] names = client.listNames(name);
> if (names == null) {
> return false;
> }
> return (names.lenght >= 1);
> }
> {code}
> {code:title=SftpOperations.java}
> public boolean existsFile(String name) throws
> GenericFileOperationFailedException {
> Vector files = channel.ls(name);
> if (names == null) {
> return false;
> }
> return (names.size >= 1);
> }
> {code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira