proglab / sftp-client-bundle
Sftp 客户端组件
v1.0.4
2021-06-02 15:18 UTC
Requires
- php: >=7.4
- ext-ssh2: *
- symfony/framework-bundle: ^5.2
- symfony/http-kernel: ^5.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0.0
- phpstan/phpstan: ^0.12.88
README
一个 SFTP 客户端
安装
打开命令行,进入您的项目目录并执行
composer require proglab/sftp-client-bundle
如果您不使用 symfony/flex,请在项目的 config/bundles.php
文件中添加该组件以启用
// config/bundles.php return [ // ... Proglab\SftpClientBundle\SftpClientBundle::class => ['all' => true], ];
使用方法
通用
获取 SftpClient
您有两种选择
- 手动创建客户端,并传递一个记录器
use Proglab\SftpClientBundle\Service\SftpClient; use Psr\Log\NullLogger; $logger = new NullLogger(); $client = new SftpClient($logger);
- 从依赖注入中获取客户端
use Proglab\SftpClientBundle\Service\SftpClient; class Service { public function __construct(private SftpClient $client) { } }
连接
您必须连接到 SFTP 服务器。
您需要用户名、密码、主机和端口(默认为 22)。
$client->connect('username', 'password', 'host', 22);
断开连接
$client->deco();
列出文件
从远程目录
列出远程目录中的文件。远程目录路径必须是绝对路径。
$files = $client->getRemoteListFiles('/var/www/');
从本地目录
列出本地目录中的文件。本地目录路径必须是绝对路径。
$files = $client->getLocalListFiles('/var/www/');
操作
上传
从本地上传文件到远程目录
$files = $client->upload($fileLocalPath, $fileRemotePath, $delete = true);
下载
从远程下载文件到本地目录
$files = $client->download($fileRemotePath, $fileLocalPath, $delete = true);
同步本地到远程
将本地文件同步到远程目录
$files = $client->syncLocalDirToRemote($localDir, $remoteDir, $delete = true);
同步远程到本地
将远程文件同步到本地目录
$files = $client->syncRemoteDirToLocal($remoteDir, $localDir, $delete = true);
感谢
非常感谢jmsche的帮助