2012-11-29 101 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