2012-11-29 102 views
0

您如何決定使用哪種協議在服務器之間傳輸/移動/複製文件? 我正在編寫一個服務,將文件從Windows服務器文件系統複製到基於oracle的數據庫。傳輸文件的協議

回答

1

用於傳輸文件File Transfer Protocol如何。

由於Oracle不存儲文件,我懷疑你需要的不僅僅是傳輸文件。我懷疑你需要在任何情況下使用JDBC。

+0

Thx Peter,是的,我大部分都在傳輸JPG,並將它保存爲clob ...我的問題是,你如何決定它的FTP,而不是你需要的SSH使用? –

+1

CLOB用於文本,我將BLOB用於二進制文件,您可以通過JDBC執行更新,因此您不需要FTP或SSH。如果a)這是進行傳輸的唯一方式,或者b)您需要安全傳輸,則可以使用SSH。如果您需要安全傳輸,則可以使用SCP或SFTP。 –

0

我不確定這是清楚你正在建設什麼,爲什麼它是一個Java問題?

您是否需要在Java中實現自定義協議來傳輸您正在構建的Web服務的文件?或者你可以使用現成的產品和一堆shell腳本來處理文件傳輸?

如果您需要在Java中(問題是標籤與Java),然後建立更多的問題,自定義的東西:

它是一個Web應用程序,它提供最終用戶提供圖形用戶界面,允許他們提交的文件? - 你需要照顧使用http post的文件傳輸。 Apache httpclient庫可以幫助你。

  1. 它是一個SOAP Web服務,將傳入的數據保存到Oracle?
      - 再次,SOAP實現爲此提供了答案。

  2. 它是在Windows計算機上運行的與Oracle數據庫交互的命令行工具嗎?
      - 然後協議是不相關的,因爲您可以使用file.io庫讀取文件並使用jdbc將它們保存到oracle中。

  3. 它是一個具有尚未構建的協議的自定義服務器,隨後是使用該協議的自定義客戶端嗎?
      - 然後我會通過https使用二進制來實現自定義服務器/服務。

4.如果您正在使用COTS做所有事情,FTP很簡單快捷,但它不安全,也不可靠。 SFTP幾乎總是會變得更好。 http://geekswithblogs.net/bvamsi/archive/2006/03/23/73147.aspx

5.如果您的問題真的是關於如何使用jdbc將文件保存到Oracle數據庫中,那麼您需要找到一種方法來對它們進行流式處理(否則將耗盡內存)。

E.g.這可能是有幫助的http://www.coderanch.com/t/415625/JDBC/databases/save-files-oracle-database-java