Download the PHP package verseles/flyclone without Composer
On this page you can find all versions of the php package verseles/flyclone. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download verseles/flyclone
More information about verseles/flyclone
Files in verseles/flyclone
Informations about the package flyclone
Verseles\Flyclone
PHP 8.4+ wrapper for rclone, focused on safe, testable file operations across local disks, S3-compatible storage, SFTP, FTP, Google Drive, Dropbox, Mega, B2, and the rest of rclone's backends.
Why Flyclone
- Object-oriented providers around rclone remotes.
- Single-remote and two-remote operations through the same
Rcloneclass. - Transfer statistics and optional progress callbacks.
- Typed exceptions for rclone exit codes.
- Retry support with exponential backoff.
- Fluent include/exclude filters.
- Debug logging with secret redaction.
- v5 safety hardening for long-lived workers: instance-scoped options, provider collision detection, safe temporary remotes, private temp directories, and inline SFTP key support.
Requirements
- PHP >= 8.4
ext-jsonrclonebinary available inPATH, or configured withRclone::setBIN()
Installation
Quick Start
For one-remote operations, pass only one provider:
Providers
| Backend | Class | Notes |
|---|---|---|
| Local filesystem | LocalProvider |
Local paths and temporary helper remotes |
| Amazon S3 / MinIO / R2 | S3Provider |
S3-compatible flags map to rclone env config |
| SFTP | SFtpProvider |
Supports password, key_file, and v5 inline key_pem/private_key |
| FTP | FtpProvider |
FTP/FTPS |
| Google Drive | GDriveProvider |
OAuth/config-driven rclone backend |
| Dropbox | DropboxProvider |
OAuth/config-driven rclone backend |
| Mega.nz | MegaProvider |
Mega backend |
| Backblaze B2 | B2Provider |
B2 backend |
| Encrypted remote | CryptProvider |
Wraps another provider |
| Union filesystem | UnionProvider |
Merges upstream providers |
| Any other rclone backend | Provider |
Generic provider class |
Provider names are normalized to rclone-safe uppercase remote names. In v5, names that normalize to an empty value are rejected, and conflicting provider environment variables fail fast instead of being silently overwritten.
Core Operations
Upload and download helpers create unique temporary local remotes internally:
SFTP Private Keys
Prefer inline PEM keys in v5. Flyclone passes the value to rclone as RCLONE_CONFIG_<REMOTE>_KEY_PEM; no key file is created by Flyclone.
private_key is a convenience alias for key_pem. key_pem and key_file are mutually exclusive.
Encryption
CryptProvider wraps another provider through the required remote flag.
Union Filesystems
UnionProvider receives upstream providers through upstream_providers.
Configuration
Static configuration is still available and is captured by new Rclone instances at construction time:
For long-lived workers, prefer instance-scoped options:
Filtering
Progress, Retry, And Dry Run
Error Handling
Debugging
Utilities
v5 Breaking Changes
- Provider names that normalize to an empty rclone remote name now throw
InvalidArgumentException. - Conflicting provider env vars now throw
LogicExceptioninstead of overwriting values. - Two providers with the same normalized remote name and different config now fail fast.
- Existing
Rcloneinstances no longer observe later changes to static flags/envs/timeouts; usewithFlags(),withEnvs(),withTimeout(), andwithIdleTimeout()for per-instance updates. SFtpProviderrejects ambiguouskey_pempluskey_fileconfiguration.
See MIGRATION.md for migration notes.
Testing
Provider-specific tests such as make test_dropbox and make test_gdrive require a configured .env.
Architecture
Flyclone v5 is organized around small components:
| Component | Responsibility |
|---|---|
Rclone |
Public API and operation orchestration |
Provider and subclasses |
rclone remote configuration |
CommandBuilder |
Command arguments and environment variables |
ProcessManager |
Symfony Process execution and binary detection |
StatsParser |
Transfer statistics parsing |
ProgressParser |
Real-time progress parsing |
RetryHandler |
Retry policy and backoff |
FilterBuilder |
Include/exclude filter construction |
TemporaryPath |
Private temp directories and unique temporary remote names |
SecretsRedactor |
Secret redaction for errors/logs/envs |
Logger |
Structured debug logging |
Changelog
v5.0.0
- Hardened provider configuration for long-lived workers.
- Added instance-scoped flags, envs, and timeouts.
- Added provider env collision detection.
- Added remote-name collision detection.
- Added safe temporary local provider names.
- Added private temporary download directories.
- Added SFTP inline private key support via
key_pem/private_key. - Added configuration/security tests to the fast test path.
v4.x
- Modularized
Rcloneinternals into process, command, stats, progress, retry, filter, logger, and redaction components. - Added typed exception context, health checks, dry-run mode, command introspection, and static utilities.
- Added
CryptProviderandUnionProvidersupport.
v3.x
- Added detailed transfer statistics and progress tracking improvements.
License
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
All versions of flyclone with dependencies
ext-json Version *
symfony/process Version ^7 || ^8
spatie/once Version ^3.0.1