骆驼 - 如何移动码头集装箱外的文件
我有一个容器内的弹簧启动应用程序,我用骆驼来读取一些文件,但我需要告诉骆驼开始读取容器外,然后将相同的文件移动到一个这也是在容器外具体路径,有人可以帮我?骆驼 - 如何移动码头集装箱外的文件
这是我的代码:
@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");
}
}
在此先感谢
你怎么在容器外的意思是?如果您的意思是运行容器的主机上的路径,则需要将该路径作为卷共享。在使用"docker run.."
时或在Dockerfile中设置音量。如果您的意思是骆驼应该通过ftp或sftp获取文件,请确保容器可以先访问该站点。
是的,我需要一个来自主机的文件,但是有可能在两个不同的路径之间读取和移动文件?因为我需要从/ mnt /文件读取文件,但后来将文件移动到主机上的另一个位置例如/ var/lib/files –
是的。这两个路径必须被模仿为[卷](https://docs.docker.com/engine/admin/volumes/volumes/#create-and-manage-volumes),以便容器可以访问它。然后,您可以使用具有相对或绝对路径的&移动选项来安装音量。 – Bedla
主机上需要的任何路径都需要作为卷装入,以便容器到达它。 –
使用[移动](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
是的,这将移动该文件,但我怎么能指定一个在容器外面的路径? –
不确定你对“容器外”意味着什么。如果这意味着在远程FTP服务器上移动文件,那么从camel-file2组件继承的“move”选项应该可以工作 – Bedla