lextira / pureftpd-manager
用于 https://github.com/lextira/pureftpd 的客户端库。
1.0.7
2023-08-10 09:18 UTC
Requires
- php: >=7.2.5
- ext-json: *
- guzzlehttp/guzzle: ^7
- illuminate/config: ^8|^9|^10
- illuminate/support: ^8|^9|^10
- illuminate/validation: ^8|^9|^10
This package is auto-updated.
Last update: 2024-09-16 11:03:37 UTC
README
Laravel 客户端包,允许管理 https://github.com/lextira/pureftpd 的 FTP 账户
安装
- 运行
composer require lextira/pureftpd-manager
- 设置环境变量 LEXTIRA_PUREFTPD_HOST 和 LEXTIRA_PUREFTPD_AUTH_KEY 以进行配置
使用
- 注册 PureFTPdServiceProvider
<?php
namespace App\Services\Backend\Providers;
...
use Lextira\PureFTPdManager\Providers\PureFTPdServiceProvider;
/**
* Class BackendServiceProvider
* @package App\Services\Backend\Providers
*/
class BackendServiceProvider extends ServiceProvider
{
...
/**
* Register the Backend service provider.
*
* @return void
*/
public function register()
{
...
$this->app->register(PureFTPdServiceProvider::class);
}
}
- 在需要的地方注入 PureFTPdManager
<?php
namespace App\Domains\FTP\Jobs;
use Illuminate\Http\Request;
use Lextira\PureFTPdManager\Services\PureFTPdManager;
use Lucid\Foundation\Job;
class GetAccountsJob extends Job {
public function handle(PureFTPdManager $ftpManager, Request $request)
{
return $ftpManager->accounts()->getPage($request->input('page', 1));
}
}
可用方法
<?php
$ftpManager->accounts()->get($id);
/*
stdClass Object
(
[data] => stdClass Object
(
[id] => 1
[domain_id] => 1
[relative_dir] => /
[description] =>
[login] => abc@lexgate.ch
[status] => 1
[created_at] => 2018-10-26 15:10:37
[updated_at] => 2018-10-26 15:10:37
)
[status] => 200
)
*/
$ftpManager->accounts()->getPage($pageNumber);
/*
stdClass Object
(
[data] => stdClass Object
(
[current_page] => 1
[data] => Array
(
[0] => stdClass Object
(
[id] => 1
[domain_id] => 1
[relative_dir] => /
[description] =>
[login] => abc@lexgate.ch
[status] => 1
[created_at] => 2018-10-26 15:10:37
[updated_at] => 2018-10-26 15:10:37
)
)
[first_page_url] => http://example.com/api/v1/accounts?page=1
[from] => 1
[last_page] => 1
[last_page_url] => http://example.com/api/v1/accounts?page=1
[next_page_url] =>
[path] => http://example.com/api/v1/accounts
[per_page] => 15
[prev_page_url] =>
[to] => 1
[total] => 1
)
[status] => 200
)
*/
try {
$ftpManager->accounts()->create([
'login' => 'my_login',
'password' => 'pass',
'relative_dir' => 'dir',
'description' => 'desc',
]);
} catch (\Illuminate\Validation\ValidationException $exception) {
print_r($exception->errors());
}
/*
stdClass Object
(
[data] => stdClass Object
(
[domain_id] => 1
[login] => my_login@lexgate.ch
[status] => 1
[relative_dir] => dir
[description] => desc
[updated_at] => 2018-10-30 11:33:41
[created_at] => 2018-10-30 11:33:41
[id] => 2
[domain] => stdClass Object
(
[id] => 1
[name] => lexgate.ch
[created_at] => 2018-10-26 15:07:15
[updated_at] => 2018-10-26 15:07:15
)
)
[status] => 200
)
*/
try {
$ftpManager->accounts()->update($id, [
'login' => 'my_login,
'password' => 'pass',
'relative_dir' => 'dir',
'description' => 'desc',
]);
} catch (\Illuminate\Validation\ValidationException $exception) {
print_r($exception->errors());
}
/*
stdClass Object
(
[data] => stdClass Object
(
[id] => 2
[domain_id] => 1
[relative_dir] => dir1
[description] => desc
[login] => my_login@lexgate.ch
[status] => 1
[created_at] => 2018-10-30 11:33:41
[updated_at] => 2018-10-30 11:34:35
[domain] => stdClass Object
(
[id] => 1
[name] => lexgate.ch
[created_at] => 2018-10-26 15:07:15
[updated_at] => 2018-10-26 15:07:15
)
)
[status] => 200
)
*/
$ftpManager->domains()->getPage($pageNumber);
/*
stdClass Object
(
[data] => stdClass Object
(
[current_page] => 1
[data] => Array
(
[0] => stdClass Object
(
[id] => 1
[name] => lexgate.ch
[created_at] => 2018-10-26 15:07:15
[updated_at] => 2018-10-26 15:07:15
)
)
[first_page_url] => http://example.com/api/v1/domains?page=1
[from] => 1
[last_page] => 1
[last_page_url] => http://example.com/api/v1/domains?page=1
[next_page_url] =>
[path] => http://example.com/api/v1/domains
[per_page] => 15
[prev_page_url] =>
[to] => 1
[total] => 1
)
[status] => 200
)
*/
$ftpManager->health()->check();
/*
stdClass Object
(
[data] => stdClass Object
(
[db_status] => OK
[ftp_status] => OK
[ssl_status] => OK
)
[status] => 200
)
*/