2017-11-11 255 views
0

我有一个容器内的弹簧启动应用程序,我用骆驼来读取一些文件,但我需要告诉骆驼开始读取容器外,然后将相同的文件移动到一个这也是在容器外具体路径,有人可以帮我?骆驼 - 如何移动码头集装箱外的文件

这是我的代码:

@Component 
public class Controlador extends RouteBuilder { 

    @Autowired 
    Procesador objProcesador; 

    @Override 
    public void configure() throws Exception { 
     from("ftp://[email protected]:port?password=password&passiveMode=true&delete=true").streamCaching().convertBodyTo(InputStream.class).process(objProcesador).to("/var/lib"); 
    } 

} 

在此先感谢

+0

使用[移动](http://camel.apache.org/file2.html)URI选项而不是删除。 https://stackoverflow.com/questions/19905462/how-to-rename-and-move-the-file-on-ftp-once-processed-by-camel – Bedla

+0

是的,这将移动该文件,但我怎么能指定一个在容器外面的路径? –

+0

不确定你对“容器外”意味着什么。如果这意味着在远程FTP服务器上移动文件,那么从camel-file2组件继承的“move”选项应该可以工作 – Bedla

回答

1

你怎么在容器外的意思是?如果您的意思是运行容器的主机上的路径,则需要将该路径作为卷共享。在使用"docker run.."时或在Dockerfile中设置音量。如果您的意思是骆驼应该通过ftp或sftp获取文件,请确保容器可以先访问该站点。

+0

是的,我需要一个来自主机的文件,但是有可能在两个不同的路径之间读取和移动文件?因为我需要从/ mnt /文件读取文件,但后来将文件移动到主机上的另一个位置例如/ var/lib/files –

+0

是的。这两个路径必须被模仿为[卷](https://docs.docker.com/engine/admin/volumes/volumes/#create-and-manage-volumes),以便容器可以访问它。然后,您可以使用具有相对或绝对路径的&移动选项来安装音量。 – Bedla

+0

主机上需要的任何路径都需要作为卷装入,以便容器到达它。 –