就把这个附件,就把附件按照一定规则传到另外一台服务器上。现在打算用户提交的时候,将文件通过ftp传到另外一台服务器上。
但是有两个担心啊不知道是否多余啊1、ftp传的时候有没有跟数据库连接一样的概念啊。是建立一个长ftp链接?还是每次都重新握手然后ftp文件啊。
2、在并发传文件的情况下。ftp是否有线程安全,或者等待的问题啊(就是等一个发完了另外一个才能开始发)?麻烦大家了啊!有人有现成的例子吗?thx
但是有两个担心啊不知道是否多余啊1、ftp传的时候有没有跟数据库连接一样的概念啊。是建立一个长ftp链接?还是每次都重新握手然后ftp文件啊。
2、在并发传文件的情况下。ftp是否有线程安全,或者等待的问题啊(就是等一个发完了另外一个才能开始发)?麻烦大家了啊!有人有现成的例子吗?thx
谢谢啊~~~~~~~~我想知道并发的时候,如果并发传两个文件的话,共用一个ftp用户、密码,上传没问题吧?
会出现排队或者线程或者其他什么问题吗?
比如场景是:FTP服务器宕机,本来是帖子有附件就传到FTP服务器上,宕机就传失败,文件就保留在了当前服务器FTP临时目录下了,然后等FTP服务器正常了以后,如果有两个用户同时都上传带附件的帖子,我的逻辑是,先会将临时目录文件都上传。然后在上传这个附件。出现并发可能造成上传两次临时目录,或者还有其他的问题,不知道怎么解决比较好啊。55
比如说我要在根目录是RootDir目录下创建我的文件。
我的java程序在RootDir下生成文件RootDir/dir1/dir2/file1。但是目录dir1/dir2都是没有的。所以我需要先创建这两个目录,然后在创建文件file1。那如果我在刚创建好dir1/dir2的时候,这个扫描的线程刚好到了定时的时间,就把rootDir下的内容全部移动(剪切)到另外一台服务器上了。那我java即将要创建的文件file1会不会就失败了?
那这种情况怎么办呢?
你说的这个涉及到子目录拷贝了,如果想避免这种情况下的文件覆盖,最好调用服务器的tar命令打包整个RootDir目录,然后FTP上传到远程再解tar,这样不会出现文件丢失。JDK里面Runtime.exec()可以运行Unix命令,当然你首先得有那台机器上相应目录的操作权限