- Notifications
You must be signed in to change notification settings - Fork5
PHP wrapper for rclone. Supports Local disk, Dropbox, FTP, SFTP, Google Drive, MEGA, S3 (any compatible) and others. Progress support.
License
NotificationsYou must be signed in to change notification settings
verseles/flyclone
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PHP wrapper forrclone
supportslocal 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
list local files
useVerseles\Flyclone\Rclone;useVerseles\Flyclone\Providers\LocalProvider;$left_side =newLocalProvider('mydisk');// nickname$rclone =newRclone($left_side);var_dump($rclone->ls('/home/'));// returns array
list files from mega server
useVerseles\Flyclone\Rclone;useVerseles\Flyclone\Providers\MegaProvider;$left_side =newMegaProvider('myserver',['user'=>'johnivy@pear.com','pass'=> Rclone::obscure('applesux')]);$rclone =newRclone($left_side);var_dump($rclone->ls('/docs'));// returns array
copy from local disk to mega
useVerseles\Flyclone\Rclone;useVerseles\Flyclone\Providers\LocalProvider;useVerseles\Flyclone\Providers\MegaProvider;$left_side =newLocalProvider('mydisk');// name$right_side =newMegaProvider('myremote',['user'=>'your@email.com','pass'=> Rclone::obscure('4ppl35u*')]);$rclone =newRclone($left_side,$right_side);$rclone->copy('/home/appleinc/index.html','/docs');// always true, otherwise throws error
move from local disk to the same local disk
useVerseles\Flyclone\Rclone;useVerseles\Flyclone\Providers\LocalProvider;$samedisk =newLocalProvider('mydisk');// name$rclone =newRclone($samedisk);$rclone->copy('/home/appleinc/index.html','/home/www/');// always true, otherwise throws error
copy to dropbox with progress every sec
useVerseles\Flyclone\Rclone;useVerseles\Flyclone\Providers\LocalProvider;useVerseles\Flyclone\Providers\DropboxProvider;$left_side =newLocalProvider('mydisk');// nickname$right_side =newDropboxProvider('myremote', ['client_id' =>'your_dropbox_client_id','client_secret' =>'your_dropbox_client_secret','token' =>'your_dropbox_token',]);$rclone =newRclone($left_side,$right_side);$rclone->copy('/home/appleinc/index.html','/home/www/', [],staticfunction ($type,$buffer)use ($rclone) {var_dump($rclone->getProgress());});
- of course, you need known howrclone works.
- rclone class and providers classes always support any flag listed atrclone documentation, often as 3rd argument. but
- any flag, parameter or option passed like
--parameter-here
, in this lib is a array like['parameter-here'='value', 'max-depth' => 3, 'any'=>'1']
- if you inform only one provider ('left side'), in commands like
copy
/move
we assume'right side' as the same'left side' provider. which means a copying/moving to the same disk. - we don't have a great doc for now so open a issue always you have a doubt. remember to be descriptful.
add progress supportadd timeout supportadd more commandsadd testsuse docker and docker compose for tests
- send meta details like file id in some storage system like google drive
install docker and docker compose, then run:
cp .env.example .envmake
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
About
PHP wrapper for rclone. Supports Local disk, Dropbox, FTP, SFTP, Google Drive, MEGA, S3 (any compatible) and others. Progress support.