oprudkyi / flysystem-curlftp
Flysystem V2/V3 Adapter for the FTP with cURL implementation (supports Implicit FTP over TLS and proxy)
Installs: 22 589
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 23
Open Issues: 1
Requires
- php: ^8.0.2
- ext-curl: *
- ext-intl: *
- league/flysystem: ^2.0 || ^3.0
Requires (Dev)
- fakerphp/faker: ^1.23
- friendsofphp/php-cs-fixer: ^3.5
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-11-15 22:40:10 UTC
README
This package contains a Flysystem FTP adapter with cURL implementation. While compatible with Flysystem FTP Adapter it additionally provides support for:
- implicit FTP over TLS (FTPS)
- proxies
As well it is a fork and a temporary drop-in replacement of flysystem-curlftp:
- support of Flysystem V2/V3
- re-implemented based on flysystem-ftp
- updated dependencies
- phpstan level 6
Installation
You can install the package via composer:
composer require oprudkyi/flysystem-curlftp
Usage
use League\Flysystem\Filesystem; use VladimirYuldashev\Flysystem\CurlFtpAdapter; use VladimirYuldashev\Flysystem\CurlFtpConnectionOptions; $adapter = new CurlFtpAdapter( CurlFtpConnectionOptions::fromArray([ 'host' => 'ftp.example.com', 'username' => 'username', 'password' => 'password', /** optional config settings */ 'port' => 21, 'root' => '/path/to/root', 'utf8' => true, 'ftps' => true, // use ftps:// with implicit TLS or ftp:// with explicit TLS 'ssl' => true, 'timeout' => 90, // connect timeout 'passive' => true, // default use PASV mode 'ignorePassiveAddress' => true, // ignore the IP address in the PASV response 'sslVerifyPeer' => 0, // using 0 is insecure, use it only if you know what you're doing 'sslVerifyHost' => 0, // using 0 is insecure, use it only if you know what you're doing 'timestampsOnUnixListingsEnabled' => true, /** proxy settings */ 'proxyHost' => 'proxy-server.example.com', 'proxyPort' => 80, 'proxyUsername' => 'proxyuser', 'proxyPassword' => 'proxypassword', 'verbose' => false // set verbose mode on/off ]) ); $filesystem = new Filesystem($adapter);
Testing
$ composer test
Upgrade from 1.x
- use CurlFtpConnectionOptions for creating adapter
use VladimirYuldashev\Flysystem\CurlFtpAdapter;
use VladimirYuldashev\Flysystem\CurlFtpConnectionOptions;
...
$adapter = new CurlFtpAdapter(
CurlFtpConnectionOptions::fromArray([
...
skipPasvIp
option renamed toignorePassiveAddress
for compatibitlity with Flysystem FTP AdapterenableTimestampsOnUnixListings
option renamed totimestampsOnUnixListingsEnabled
for compatibitlity with Flysystem FTP Adapter
License
The MIT License (MIT). Please see License File for more information.