proglab/sftp-client-bundle

Sftp 客户端组件

安装: 5

依赖项: 0

建议者: 0

安全性: 0

星星: 0

关注者: 3

分支: 1

开放问题: 0

类型:symfony-bundle

v1.0.4 2021-06-02 15:18 UTC

This package is auto-updated.

Last update: 2024-09-29 05:43:12 UTC


README

一个 SFTP 客户端

安装

打开命令行,进入您的项目目录并执行

composer require proglab/sftp-client-bundle

如果您不使用 symfony/flex,请在项目的 config/bundles.php 文件中添加该组件以启用

// config/bundles.php

return [
    // ...
    Proglab\SftpClientBundle\SftpClientBundle::class => ['all' => true],
];

使用方法

通用

获取 SftpClient

您有两种选择

  1. 手动创建客户端,并传递一个记录器
use Proglab\SftpClientBundle\Service\SftpClient;
use Psr\Log\NullLogger;

$logger = new NullLogger();
$client = new SftpClient($logger);
  1. 从依赖注入中获取客户端
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的帮助