前提:项目需要,第三方用sftp交互,不得不用 =。=
支持
SFTP -- 使用证书认证登录 or 使用账号密码登录
PHP7 -- 需要开启ssh2扩展支持
操作 -- 可以处理单个文件,也可以操作文件夹
证书生成
ssh-keygen -t rsa -C "备注信息"
完成后将公钥配到sftp服务器 -- 交给运维 or SFTP配置账户公钥
配置信息
return [
'host' => 'x.x.x.x',
'port' => 22,
'username' => 'root',
'password' => '',
'useKey' => true, // 需要密钥登录在使用时指定路径
'public_key' => '',
'private_key' => '',
'passphrase' => ''
];
Linux指令连接SFTP
密钥方式:sftp -oIdentityFile=私钥名称 -oPort=22 root@192.168.123.124
账号方式:sftp test@192.168.123.124 -- 登录后输密码
代码实现
原则:面向对象
一定要提高代码可复用性!
功能:上传 下载 剪切 删除 单文件操作 多文件操作
可以根据业务需求调整
注意:cut返回的是下载文件的路径(数组)
<?php
/**
* Message: