上传文件到服务器端后进一步推送到sftp服务器

简介: 扩展安装 要想sftp服务端发送文件,就需要php脚本具有作为ssh客户端的能力,所以需先为php安装如下扩展 openssl openssl-dev libssh php ssh 扩展 按照下面的命令进行安装 1 rpm -qa | grep openssl 2 wget http://www.

扩展安装

要想sftp服务端发送文件,就需要php脚本具有作为ssh客户端的能力,所以需先为php安装如下扩展

  • openssl
  • openssl-dev
  • libssh
  • php ssh 扩展

按照下面的命令进行安装

 1 rpm -qa | grep openssl
 2 wget http://www.libssh2.org/download/libssh2-1.6.0.tar.gz
 3 tar zxvf llibssh2-1.6.0.tar.gz
 4 cd libssh2-1.6.0
 5 ./configure
 6 make && make install
 7 wget http://pecl.php.net/get/ssh2-0.11.3.tgz
 8 tar xvf ssh2-0.11.3.tgz
 9 cd ssh2-0.11.3
10 phpize
11 ./configure --with-ssh2
12 make
13 cp modules/ssh2.so /alidata/server/php-5.4.23/lib/php/extensions/no-debug-non-zts-20100525
14 echo 'extension=ssh2.so' >> /alidata/server/php-5.4.23/etc/php.ini
15 service nginx restart
16 php -i | grep ssh2

服务器软件安装路径需要根据实际情况修改

php推送脚本

注意这里服务端已经处理完文件上传,这个推送的部分可以另起一个线程或进程去推送

 1 public function proccessFile($destinationPath, $filename)
 2 {
 3 //parent::proccessFile($destinationPath, $filename); // TODO: Change the autogenerated stub
 4 
 5   $remoteBasePath = '/mnt/java/pipeline/ads/upload/';
 6   $localBasePath = '/alidata/www/aft/';
 7   $connection = ssh2_connect('XXX.XXX.XXX.XXX', 22);
 8   ssh2_auth_password($connection, 'username', 'password');
 9   /*
10   $sftp = ssh2_sftp($connection);
11   SiteHelpers::PE($sftp);
12   $resFile = fopen("ssh2.sftp://$sftp/mnt/java/pipeline/ads/upload", 'w');
13   $srcFile = fopen('/alidata/www/aft/'.$destinationPath.'/'.$filename,'r');
14   $writtenBytes = stream_copy_to_stream($srcFile, $resFile);
15   fclose($resFile);
16   fclose($srcFile);
17   */
18   $dateDir = date("Y-m/d",strtotime("-1 day"));
19 //    SiteHelpers::PE($remoteBasePath.$dateDir.'/'.$filename);
20 //    $sftp = ssh2_sftp($connection);
21 //    ssh2_sftp_mkdir($sftp,$remoteBasePath.$dateDir);
22   ssh2_exec($connection,'mkdir -p '.$remoteBasePath.$dateDir);
23   ssh2_scp_send($connection,
24      $localBasePath.$destinationPath.'/'.$filename,
25      $remoteBasePath.$dateDir.'/'.$filename);
26 
27   Log::info('处理了投放数据');
28   Log::info($destinationPath.'/'.$filename);
29 }

可以看到最后文件成功推送到sftp服务器

目录
相关文章
|
9月前
|
PHP Android开发
android通过http上传文件,服务器端用php写(原创)
android通过http上传文件,服务器端用php写(原创)
84 4
|
4月前
SecureCRT 通过xftp命令行上传文件到服务器上
SecureCRT 通过xftp命令行上传文件到服务器上
177 1
|
4月前
|
存储 Linux 网络安全
【VMware VCF】使用 SFTP 服务器备份 VCF 核心组件的配置文件
【10月更文挑战第6天】以下是使用 SFTP 服务器备份 VMware VCF 核心组件配置文件的步骤:首先,设置 SFTP 服务器并配置用户账号与权限;其次,确保 VCF 环境能与 SFTP 服务器建立网络连接,并检查防火墙规则;接着,识别核心组件配置文件的位置,并使用 SFTP 客户端工具(如 `lftp` 或 WinSCP)进行备份;最后,验证备份结果的完整性和正确性,并定期执行备份操作,设置备份文件保留策略以节省存储空间。
|
6月前
|
Java
Java使用FileInputStream&&FileOutputStream模拟客户端向服务器端上传文件(单线程)
Java使用FileInputStream&&FileOutputStream模拟客户端向服务器端上传文件(单线程)
110 1
|
8月前
|
存储 数据库连接 数据库
如何使用Python上传文件到FTP服务器
如何使用Python上传文件到FTP服务器
135 1
|
9月前
|
资源调度
在 Next.js 中使用自定义服务器框架进行服务器端渲染
在 Next.js 中使用自定义服务器框架进行服务器端渲染
|
8月前
|
前端开发 Java API
Android端通过HttpURLConnection上传文件到服务器
Android端通过HttpURLConnection上传文件到服务器
119 0
|
4天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
5天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
7天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。

热门文章

最新文章