在我的项目中,我需要这样做:
server1 ---http-download (curl)---> my pc ---http-upload(curl)---> server2
这显然是重复流量。我想知道是否有一种方法可以指导 server1 执行 http 上传文件到 server2,如下所示:
my pc ---http-request---> server1 ----http-upload---> server2
是否可以使用现有的网络服务器?
请注意,这两个服务器都不在我的系统内,换句话说,服务器 1 和服务器 2 不在我的控制范围内。
答案1
可能的选择:
- 更新服务器 2 上的接收脚本,这样它就不再接收上传的文件,而是获得服务器 1 上要获取的文件的 URL。
- 在服务器 1 上放置一个脚本,该脚本可以提供有关如何将文件上传到服务器 2 的信息。这可能更复杂,因为上传需要的不仅仅是一个 URL。
- 使用 FTP 而不是 HTTP,因为您要求的内容实际上可以用 FTP 实现。不过,存在一个风险,即其中一个站点的防火墙会阻止此类传输。
如果以上都不受支持,并且您没有足够的访问权限来获取任何服务器的支持,那么答案是:不,您无法直接传输文件。
文件的中间存储不一定是您正在使用的 PC。如果您需要经常进行此类传输,最好使用位置优越的 VPS 作为中间存储。
答案2
如果您可以控制服务器(但您没有),您可以使用 rsync,甚至让服务器 2 从服务器 1 获取文件。
由于您没有访问权限,您必须从一台服务器下载文件,然后将其上传到另一台服务器。因为您无法让服务器 2 向服务器 1 发出文件请求。