如何从服务器中的 FTP 位置读取大文件

How to read a large file from FTP location in server

我必须从 FTP 位置读取大型(比如 20mb)管道分隔文件并存储到数据库中。最好的方法是什么。

一些方法: 1.将文件复制到本地,然后读取并保存到数据库。 2. 直接从流中读取并保存到数据库中。

请提出一些有效的方法。

当它是 sql 或 csv 文件时,您可以通过 ssh 尝试。

mysql -u root -p

set global net_buffer_length=1000000; --Set network buffer length to a large byte number

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour

source file.sql --Import your sql dump file

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!

我认为选项 1 会更好,

如果是选项 2 - 如果出现异常怎么办 - 在 DB 中写入文件时使用流或异常读取文件时,您将如何确切地知道失败的位置,

使用选项 1,您可以存储文件临时目录,然后将文件写入数据库,然后从临时目录中删除或存档。

最好在文件系统上归档文件 - 它将在以后的参考中使用。

两者都有很多例子 -

要从 ftp 下载文件,您可以按照 - http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example