Skip to content

oprudkyi/flysystem-curlftp

 
 

Repository files navigation

Flysystem V2/V3 Adapter for the FTP with cURL implementation

Latest Stable Version Build Status StyleCI License

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 to ignorePassiveAddress for compatibitlity with Flysystem FTP Adapter
  • enableTimestampsOnUnixListings option renamed to timestampsOnUnixListingsEnabled for compatibitlity with Flysystem FTP Adapter

License

The MIT License (MIT). Please see License File for more information.

About

Flysystem Adapter for the FTP with cURL implementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 88.4%
  • Shell 10.1%
  • Dockerfile 1.5%