2017-11-11 256 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

主機上需要的任何路徑都需要作爲卷裝入,以便容器到達它。 –