由于经常操作国外服务器,深刻的感受是速度比较低,有的时候可以说非常低。

最近需要两台服务器做下载数据分流。但是面临着一个问题:同时去上传两个资源到两台服务器明显是一件比较麻烦的事,而且速度很慢,花时间又多。所以想了一个办法,将资源上传到其中一台服务器,然后直接从另一台服务器登入这台服务器下载资源并拷贝到同样的目录下。

于是乎找了很多方法,其实最快的就是用linux上的shell方式,直接get文件就可以同步数据,但是可能服务的一些问题,并没有办法这么顺利,不过在php中的确找到了FTP相关的函数

resource ftp_connect ( string $host [, int $port [, int $timeout ]] )

bool ftp_login ( resource $ftp_stream , string $username , string $password )

bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos ] )

利用这三个函数足以实现同步资源。因此我设置了两个函数。//FTP连接

function loginFtp() {

// set up basic connection

$ftp_server = 'serverName Or Ip';

$ftp_user = 'username';

$ftp_pass = 'password';

// connect ftp

$ftp_conn = ftp_connect($ftp_sever);

// login with username and password

$login_result = ftp_login($ftp_conn, $ftp_user, $ftp_pass);

// check connection

if ( !$ftp_conn || ! $login_result) {

die("FTP connection has failed!");

}

return $ftp_conn;

}

//同步文件

function synchronize($server_file, $ftpconn) {

$local_file = ltrim($server_file, '/');

$local_file = str_replace('pub/', '', $local_file);

//目录不存在 重新创建

$folder = strrpos($local_file, '/');

if ($folder !== FALSE) {

$local_folder = substr($local_file, 0, $folder) . '/';

}

if ( ! is_dir($local_folder) ) {

mkdir($local_folder, 0775, TRUE);

}

// download the file

$rs = ftp_get($ftpconn, $local_file, $server_file, FTP_BINARY);

if ( $rs ) {

if ( ! file_exists($local_file) )

echo "Successfully written to {$local_file}.
";

else

echo "Successfully rewritten to {$local_file}.
";

} else {

echo "There was a problem on {$local_file}.
";

}

}

//实现同步

$conn = loginFtp();

$file = '/pub/files/msnlite.exe';

synchronize($file, $conn);

// close the FTP stream

ftp_close($conn);

php的ftp怎么代理访问,利用PHP登陆FTP实现服务器资源同步 | Lancer's Blog相关推荐

  1. linux建ftp用户限制访问,Linux下建ftp用户并限制用户访问路径

    目的是:在Linux系统上建立ftp用户,并限制其通过ftp访问时,只能访问用户主目录:其主目录显示路径也是"/",看不到上级目录. 例如,我要建立用户usertest,密码为us ...

  2. Linux下创建FTP虚拟用户的配置过程--非系统账户登陆FTP

    目录 前言 一.检查vsftpd是否安装 二.建立vsftpd虚拟用户 2.1.添加虚拟用户口令文件 2.2.生成虚拟用户口令认证文件 2.3.编辑vsftpd的PAM认证文件 2.4.建立本地映射用 ...

  3. 让IE部分网站或IP进行代理访问

    让IE只对指定的网站使用代理,可以使用系统自带的代理脚本功能,自动为我们设定的网站使用代理! 这个要使用代理自动配置脚本代码如下: function FindProxyForURL(url,host) ...

  4. Crawler:反爬虫机制之基于urllib库+伪装浏览器+代理访问(代理地址随机选取)+实现下载某网址上所有的图片到指定文件夹

    Crawler:反爬虫机制之基于urllib库+伪装浏览器+代理访问(代理地址随机选取)+实现下载某网址上所有的图片到指定文件夹 导读 基于反爬虫机制之基于urllib库+伪装浏览器+代理访问(代理地 ...

  5. Linux Centos8 安装Minio开机启动并Nginx代理访问

    查看官方文档(MinIO)进行操作 安装minio #下载 wget https://dl.min.io/server/minio/release/linux-amd64/minio#创建目录 sud ...

  6. Java程序通过代理访问网络

    问题背景 最近工作上有开发爬虫的任务,对目标网站数据进行抓取,由于大部分网站都在国外,无法直接访问,需要通过代理才能登录.爬虫部署的服务器在香港,所以爬虫部署到服务器后,是可以访问目标网站的,但本地开 ...

  7. 浅谈云函数的代理IP利用面

    浅谈云函数的代理IP利用面 前言 本篇文章介绍如何通过 Serverless(云函数) 实现各种扫描器探测功能,以达到绕过态势感知.WAF等安全设备,增大蓝队研判人员溯源难度,实现封无可封,查无可查的 ...

  8. 红蓝对抗之隧道技术第一篇(内网穿透、端口映射端口转发、Netsh端口转发、CS正反向连接多层内网、Burp设置上游代理访问内网、MSF protfwd端口转发/重定向)

    文章目录 隧道应用 端口映射&端口转发 Netsh端口转发 Netsh端口转发meterpreter CS正向连接多层内网 CS反向连接多层内网 Burp设置上游代理访问内网 MSF prot ...

  9. windows 远程访问别人的linux下的ftp服务器,linux与windows之间使用ftp相互访问(CentOS提示ftp:command not found)...

    启动linux及windows系统,这里默认linux系统的IP为192.168.1.15.打开windows的DOS终端,首先输入 :ftp 192.168.1.15 在使用账户和密码登陆:登陆格式 ...

最新文章

  1. 网络文件系统(NFS)简介
  2. OpenGL入门学习(十二) 【转】
  3. HTML5标签的语义认知和理解
  4. java格式化double_java – 格式化double以省略不必要的“.0”,永远不会关闭
  5. mini2440使用jlink烧写superboot到norflash
  6. linux系统中自动生成snap文件_在Linux操作系统下自动生成Makefile的方法
  7. 计算机补丁的概念,补丁是什么意思?网上说的打补丁什么意思
  8. oracle database version,Oracle Database Version History
  9. StackExchange.Redis 官方文档(五) Keys, Values and Channels
  10. 带格式粘贴至html富文本,防止复制/粘贴将网页样式复制到富文本编辑器
  11. hdoj1290切球形蛋糕(递推和划分问题)
  12. sh_gamit报错:error reading station a priori constrains
  13. Perl 常用正则匹配
  14. 盘点4种微信营销如何快速吸粉的方法
  15. Linux指令和对应的英文全称,Linux单横杠和双横杠的区别
  16. ipp协议 打印机 c语言,使用IPP(Internet打印协议)或LPR(行式打印机远程)在android中打印文件...
  17. 数学成绩英语成绩c语言,用链表输入一个正整数n,再输入n 个学生的学号和数学,英语,C语言成绩,要求...
  18. 正则表达式--replace
  19. 扰人的异常:net.sf.json.JSONException: Object is null
  20. 动态链接库DLL是什么?

热门文章

  1. I.MX6 MAC地址修改
  2. JDBC连接数据库的步骤
  3. Linux文件系统与文本处理常用命令总结
  4. python半径为2.11的圆球的体积_python 学习笔记 11 -- 使用参数使你的程序变得更性感...
  5. 2020统计局的行政划分表_天津市第七次全国人口普查区域划分与地图绘制试点工作在西青区开展...
  6. 【毕业答辩】怎样做好毕业答辩?纯干货
  7. mysql id用什么类型_mysql 证明为什么用limit时,offset很大会影响性能
  8. 后台cs代码控制html控件,cshtml中正则表达式使用后台代码
  9. ieee5节点系统图_存储系统的的关键技术之自精简技术
  10. Python+OpenCV:仿射变换和透射变换