PHP wrapper for rclone. Supports Local disk, Dropbox, FTP, SFTP, Google Drive, MEGA, S3 (any compatible) and others. Progress support.
PHP wrapper for rclone
supports local disk, dropbox, ftp, sftp, google drive, mega, s3, b2 (any compatible) and others can be easily added via pr.
progress support.
```shell script
composer require verseles/flyclone
## usage
<details open><summary>list local files</summary>
```php
use Verseles\Flyclone\Rclone;
use Verseles\Flyclone\Providers\LocalProvider;
$left_side = new LocalProvider('mydisk'); // nickname
$rclone = new Rclone($left_side);
var_dump($rclone->ls('/home/')); // returns array
php
use Verseles\Flyclone\Rclone;
use Verseles\Flyclone\Providers\MegaProvider;
$left_side = new MegaProvider('myserver',[
'user'=>'johnivy@pear.com',
'pass'=> Rclone::obscure('applesux')
]);
$rclone = new Rclone($left_side);
var_dump($rclone->ls('/docs')); // returns array
php
use Verseles\Flyclone\Rclone;
use Verseles\Flyclone\Providers\LocalProvider;
use Verseles\Flyclone\Providers\MegaProvider;
$left_side = new LocalProvider('mydisk'); // name
$right_side = new MegaProvider('myremote',[
'user'=>'your@email.com',
'pass'=> Rclone::obscure('4ppl35u*')
]);
$rclone = new Rclone($left_side, $right_side);
$rclone->copy('/home/appleinc/index.html', '/docs'); // always true, otherwise throws error
php
use Verseles\Flyclone\Rclone;
use Verseles\Flyclone\Providers\LocalProvider;
$samedisk = new LocalProvider('mydisk'); // name
$rclone = new Rclone($samedisk);
$rclone->copy('/home/appleinc/index.html', '/home/www/'); // always true, otherwise throws error
php
use Verseles\Flyclone\Rclone;
use Verseles\Flyclone\Providers\LocalProvider;
use Verseles\Flyclone\Providers\DropboxProvider;
$left_side = new LocalProvider('mydisk'); // nickname
$right_side = new DropboxProvider('myremote', [
'client_id' => 'your_dropbox_client_id',
'client_secret' => 'your_dropbox_client_secret',
'token' => 'your_dropbox_token',
]);
$rclone = new Rclone($left_side, $right_side);
$rclone->copy('/home/appleinc/index.html', '/home/www/', [], static function ($type, $buffer) use ($rclone) {
var_dump($rclone->getProgress());
});
--parameter-here
, in this lib is a array like ['parameter-here'='value', 'max-depth' => 3, 'any'=>'1']
copy
/move
we assume ‘right side’ as the same ‘left side’ provider. which means a copying/moving to the same disk.install docker and docker compose, then run:
cp .env.example .env
make
there are others tests (test_all, test_gdrive, etc), but you’ll need fill
.env
file properly.
you know how to do that.
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International