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.
composer require verseles/flyclone
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
use Verseles\Flyclone\Rclone;
use Verseles\Flyclone\Providers\MegaProvider;
$left_side = new MegaProvider('myserver',[
'user'=>'[email protected]',
'pass'=> Rclone::obscure('applesux')
]);
$rclone = new Rclone($left_side);
var_dump($rclone->ls('/docs')); // returns array
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'=>'[email protected]',
'pass'=> Rclone::obscure('4ppl35u*')
]);
$rclone = new Rclone($left_side, $right_side);
$rclone->copy('/home/appleinc/index.html', '/docs'); // always true, otherwise throws error
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
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