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
You can install the package via composer:
composer require oprudkyi/flysystem-curlftp
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);
$ composer test
- 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
The MIT License (MIT). Please see License File for more information.