我们需要与外部客户端共享大文件(几千兆字节).我们需要一种可靠且自动发布这些文件的简单方法,以便客户端可以下载它们.我们的组织有Windows桌面和Windows SBS 2011服务器.
从客户端的角度来看,从我们的服务器共享可能不是最理想的,因为典型ADSL的上行带宽较低(约1 Mbps) – 客户端需要一整天(4Gb文件为9小时)才能下载文件.
上传到第三方服务器对客户有利,但对我们来说很痛苦,因为我们必须处理多小时上传.
如果能够使其可靠且自动化,则上载到第三方服务器将不那么成问题.像Groove / SharePoint Workspace这样的东西,只需将文件放入并等待它同步 – 但Groove有2Gb的限制,这是不够大的.
理想情况下,我想要一个具有以下属性的服务:
>必须适用于至少5Gb,最好是10Gb的文件
>一旦传输开始,它必须是可靠的(即对断开和服务中断不敏感)并且是完全自动的
>理想情况下,发送方会在传输完成时收到通知.
>必须使用基于Windows的系统.
有什么建议?
Sparkleshare是一款可满足您需求的开源软件.
但我建议只使用rsync镜像到具有所需带宽的远程服务器.
您可以在几分钟内设置此系统,它可以完成您想要的一切.
只需指定一个源文件夹并删除您的文件.在远程服务器上为您的客户端提供Web访问或ftp访问等.
我建议启动一个带有无限循环的shell脚本,该循环执行rsync并在每次迭代后休眠1秒钟.与Cronjob相比,这样做的好处是您不会获得干扰的并行上传.对于您的大文件,这将是我现在看到的问题.
Rsync甚至具有以下优点:文件首先作为“隐藏”文件上传.前缀和随机名称,因此客户端只能看到已完成上传并已通过完整性检查的文件.
如果文件更新,rsync也可以有效地处理这个问题.
这个脚本应该是你的最佳选择:
#!/bin/bash while [ 1 = 1 ] do rsync -arvz /my/sourcefolder/ user@remotehost.com:/remote/folder/ sleep 1; done
只需监控其运行情况,将其置于自动启动状态等.
您还可以使用rsync进行压缩.