与客户端共享大型(多 Gb)文件

Tim*_*ong 3 file-sharing file-transfer windows-sbs-2011

我不确定这是否是这个问题的最佳位置,但我认为它完全属于 IT 管理员的领域,所以这就是我把它放在这里的原因。

我们需要与外部客户端共享大文件(数 GB)。我们需要一种可靠且自动发布这些文件的简单方法,以便客户可以下载它们。我们的组织拥有 Windows 桌面和 Windows SBS 2011 服务器。

从客户端的角度来看,从我们的服务器共享可能不是最理想的,因为典型 ADSL 的上游带宽较低(大约 1 Mbps)——客户端下载文件需要一整天(4Gb 文件需要 9 小时)。

上传到第 3 方服务器对客户来说是好事,但对我们来说是痛苦的,因为我们必须处理一个多小时的上传。

如果上传到第三方服务器可以变得可靠和自动化,那么问题就会少一些,例如 Groove/SharePoint 工作区之类的东西,只需将文件放入并等待它同步 - 但 Groove 有 2Gb 的限制,这不是足够大。

所以理想情况下,我想要一个具有以下属性的服务:

  • 必须适用于至少 5Gb,最好是 10Gb 的文件
  • 一旦传输开始,它必须可靠(即对断开和服务中断不敏感)并且完全自动
  • 理想情况下,发送者会在传输完成时收到通知。
  • 必须使用基于 Windows 的系统。

有什么建议?

The*_*can 5

我假设您正在寻找服务器解决方案而不是 SAAS 产品,否则这个问题将是题外话。

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
Run Code Online (Sandbox Code Playgroud)

只需监视其运行,将其置于自动启动等状态即可。

您还可以从使用 rsync 的压缩中受益。