php curl下载文件来处理服务器间文件手动同步

有一个需求,情况如下:

两台服务器,一台测试服务器[apache],一台生产服务器[nginx],产品编辑人员在测试服务器使用php upload批量上传产品,图片,经检查后,
可以同步其所上传的产品和图片[打包成zip文件]到生产服务器上,但生产服务器上不接受php upload上传文件的,那么就不能在测试服务器上直接post到正式

服务器了。

 

暂时想到几个方法:
1. 使用rsync手动同步过去,但需要配置,并且需要php执行shell命令,但我不想这样。
2. 可以使用socket来传送数据,但需要开启端口,我也不想这么做,因如果一时忘记在防火墙开放端口,就无法传送了
3. 测试服务器发送信号到生产服务器,让生产服务器使用php curl从测试服务器下载文件并处理

通过比较,还是觉得第3种方法比较妥当,直接全程使用php来处理,至少减少一些不必要的维护麻烦。

以下是php curl download的方法代码内容:

function curl_download($testing_server_file, $local_file) {
  $rfp = curl_init($testing_server_file);
  $fp = fopen($local_file, "wb");
 
  curl_setopt($cp, CURLOPT_FILE, $fp);
  curl_setopt($cp, CURLOPT_HEADER, 0);
 
  curl_exec($rfp);
 
  $errno = curl_errno($rfp);
  $errmsg = curl_error($rfp);
 
  curl_close($rfp);
  fclose($fp); 
 
  if($errno){
    echo $errmsg;
    exit;
  }
}

时间: 2024-10-12 14:32:22

php curl下载文件来处理服务器间文件手动同步的相关文章

java实现两台服务器间文件复制的方法_java

本文实例讲述了java实现两台服务器间文件复制的方法.分享给大家供大家参考.具体分析如下: 通常我们使用最多的文件复制功能就是同服务器之间的文件复制功能,这里介绍的是在普通文件复制上功能升级,可以实现两台服务器实现文件的复制,下面一起来看看代码. 1.服务器端 复制代码 代码如下: package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOut

rsync+sersync+inotify实现服务器间文件同步

步骤一:rsync安装配置 安装和使用rsync 2.1 rsync的安装 每个镜像服务器(需要同步的服务器)都需要安装rsync守护进程. 一般发行版都带有rsync,因此我这里直接使用yum安装.当然在很多发行版上默认已经安装了rsync.  代码如下 复制代码     [root@web1 ~]# yum install rsync     [root@web1 ~]# rpm -ql rsync     /etc/xinetd.d/rsync     /usr/bin/rsync    

Oracle RMAN还原与恢复讲解(一)如何还原服务器参数文件

一. RMAN 还原与恢复基础 在RMAN 用于中,还原与恢复是两个不同的概念. 还原(restore):指访问先前生成的备份,从中得到一个或多个对象,然后在磁盘上的某个位置还原这些对象. 恢复(recover):是一个数据库与给定时间点相一致以保证能够打开这个数据库的实际进程,该进程通常是通过应用重做(包括联机重做日志和归档的重做日志)来完成的. 数据库中的数据状态对数据库是非常重要的,在数据库启动时要求数据与给定的时间状态一致. 如果数据库是一致的,就可以打开这个数据库,如果不一致,就不能打

Asp.net获取服务器指定文件夹目录文件并提供下载的方法

 这篇文章主要介绍了Asp.net获取服务器指定文件夹目录文件并提供下载的方法,涉及使用http协议操作文件的技巧,需要的朋友可以参考下 本文实例讲述了Asp.net获取服务器指定文件夹目录文件并提供下载的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: string dirPath = HttpContext.Current.Server.MapPath("uploads/"); if (Directory.Exists(dirPath)) { //获得目录信息 Direc

多谢多谢-用java编写一个从服务器下载与本地名匹配的文件

问题描述 用java编写一个从服务器下载与本地名匹配的文件 10C 就是一个程序版本与服务器特定路径下所有程序版本匹配,比较高的下载,本地最高关闭程序,现在的卡点就是无法连接FTP,全部是自己看视频学习,从网上查的代码会报错,知识欠缺无法处理登陆问题,还请各位大神不嫌弃悬赏低的帮帮忙,谁都是从菜鸟过来的,我悬赏很少,还要留着不会的再发,希望各位大神帮帮忙,不介意的话留下联系方式方便以后不会的可以帮忙解答,小弟在此感激不尽.谢谢! 解决方案 http://blog.csdn.net/cuiran/

java下载远程http地址的图片文件到本地-自动处理图片是否经过服务器gzip压缩的问题

java下载远程http地址的图片文件到本地-自动处理图片是否经过服务器gzip压缩的问题 直接上代码:       /**   * 下载文件到本地   *   * @param urlString   *            被下载的文件地址   * @param filename   *            本地文件名   * @throws Exception   *             各种异常   */  public static void download(String u

c++-C++调用CURL下载文件暂停后恢复下载失败。错误码CURLE_PARTIAL_FILE。

问题描述 C++调用CURL下载文件暂停后恢复下载失败.错误码CURLE_PARTIAL_FILE. C++调用CURL下载文件暂停后恢复下载失败.错误码CURLE_PARTIAL_FILE. 暂停一分钟内恢复下载没有问题,但是在暂停超过两分钟恢复下载的时候就会出现CURLE_PARTIAL_FILE. 开始以为是DNS在内存中保存超时了,结果调用了CURLOPT_DNS_CACHE_TIMEOUT还是不行. GOOGLE了一把,有人遇到这个问题,但是没有看到具体的解决方案. curl_easy

JAVA技术实现上传下载文件到FTP服务器(完整)_java

具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

下载站mime属性设置(让文件可下载)_服务器其它

一般软件下载 .torrentapplication/octet-stream .7zapplication/octet-stream .isoapplication/octet-stream 手机相关类型: .apkapplication/vnd.android.package-archive .dedapplication/vnd.iphone .dmg application/octet-stream .ipaapplication/vnd.iphone .app application/