windows下文件实时同步迁移至服务器的简易解决方案

近期做项目的过程中,需要做一个文件实时同步的需求,现将解决思路记录如下,便于后期继续学习和提高。


具体需求如下:

1、本地机器会不定期产生文本文件(.txt),需要将其新增的文本文件实时同步至阿里云服务器。

2、本地生成的文件的过程是按天进行存储的,所以同步后的服务器中也希望按照这样的形式存储。


解决思路:

1、考虑在服务器搭建一个文件上传的服务,本地用java开发一个小程序(本人对java较熟练偷笑实时监控新增的文件上传至阿里云服务器,服务端接受后再按照实际目录规则进行存储。

2、在咨询过大牛之后,第一种方法的确是可以实现,但是开发工作量、稳定性、实时性都不能保障,请教之后给了一个大致思路:文件的同步,建议使用FTP的方式进行传输。于是开始琢磨在服务器搭建FTP(如何搭建FTP,在此不赘述自行百度),折腾了一下午,终于在本地可以访问服务端的FTP目录(阿里云的安全认证太磨人)。


接下来,就是真正的实践过程了,期间还是有不少的插曲,且听我继续向下说:

本地能访问到FTP目录之后,本能的反应还是使用java编写一个小程序(看来是真喜欢java)通过ftp的方式进行传输(java利用ftp传输文件点击打开链接),这样稳定性、实时性啥的都会好点。可是本着“大道至简”的项目实施经验,觉得应该有更简单的方法,于是就找啊找、问啊问(主要是身边有大牛),终于找到一个简单而且适用的方案:利用windows的批处理命令进行FTP文件上传。


可是对批处理命令完全就是小白,所以又花了一小时学习批处理的语法(好在天赋异禀,基本入门生气),于是就有了下面的结果:

@Echo Off
title 文本上传工具
Echo open 47.96.132.11 >ftp.up
Echo ftptest>>ftp.up
Echo 1q2w3e4R>>ftp.up
Echo binary>>ftp.up
IF EXIST "1.txt" (pause)
Echo put "C:\1.txt">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q
Pause

是能上传了,但是怎么实时监控?怎么判断新增文件?怎么将这些整合起来呢?(主要还是对批处理不是很熟尴尬)当然这几个问题肯定可以解决,解决后就有了一个文件实时同步的工具,后续会逐步弄一个这样的东西。


由于项目比较紧张,所以最终还是想到了一个又快又简单的实现思路,当然还是使用FTP的模式,文件同步最好还是使用FTP较好,具体的实施方案有时间再写,先去吃饭。


------------------------------未完待续,且听下回分解。-------------------------------------------


猜你喜欢

转载自blog.csdn.net/u011042316/article/details/78929757