PHPackages                             oprudkyi/flysystem-curlftp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. oprudkyi/flysystem-curlftp

ActiveLibrary[File &amp; Storage](/categories/file-storage)

oprudkyi/flysystem-curlftp
==========================

Flysystem V2/V3 Adapter for the FTP with cURL implementation (supports Implicit FTP over TLS and proxy)

3.0.6(1y ago)150.9k↓14.4%3MITPHPPHP ^8.0.2CI failing

Since Sep 12Pushed 1y agoCompare

[ Source](https://github.com/oprudkyi/flysystem-curlftp)[ Packagist](https://packagist.org/packages/oprudkyi/flysystem-curlftp)[ RSS](/packages/oprudkyi-flysystem-curlftp/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (5)Versions (16)Used By (0)

Flysystem V2/V3 Adapter for the FTP with cURL implementation
============================================================

[](#flysystem-v2v3-adapter-for-the-ftp-with-curl-implementation)

[![Latest Stable Version](https://camo.githubusercontent.com/f6c2596b3cd8893d30e9ed5aac52218f4b92e0ae997843dde9f99048f2b8049a/68747470733a2f2f706f7365722e707567782e6f72672f6f707275646b79692f666c7973797374656d2d6375726c6674702f762f737461626c653f666f726d61743d666c61742d737175617265)](https://packagist.org/packages/oprudkyi/flysystem-curlftp)[![Build Status](https://github.com/oprudkyi/flysystem-curlftp/workflows/Tests/badge.svg)](https://github.com/oprudkyi/flysystem-curlftp/actions)[![StyleCI](https://camo.githubusercontent.com/d225ebc2cdb3055f0dd0b9580036501af5d207cc8ff45e7cd7dd99f3c6031b66/68747470733a2f2f7374796c6563692e696f2f7265706f732f39303032383037352f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/90028075)[![License](https://camo.githubusercontent.com/f41f240062434a2ac4eef7d07ce5dcca4e87139c855644591cb6a693267c56c8/68747470733a2f2f706f7365722e707567782e6f72672f6f707275646b79692f666c7973797374656d2d6375726c6674702f6c6963656e73653f666f726d61743d666c61742d737175617265)](https://packagist.org/packages/oprudkyi/flysystem-curlftp)

This package contains a [Flysystem](https://flysystem.thephpleague.com/) FTP adapter with cURL implementation. While compatible with [Flysystem FTP Adapter](https://flysystem.thephpleague.com/docs/adapter/ftp/) it additionally provides support for:

- implicit FTP over TLS ([FTPS](https://en.wikipedia.org/wiki/FTPS#Implicit))
- proxies

As well it is a fork and a temporary drop-in replacement of [flysystem-curlftp](https://github.com/vyuldashev/flysystem-curlftp/pull/41):

- support of Flysystem V2/V3
- re-implemented based on [flysystem-ftp](https://github.com/thephpleague/flysystem-ftp/)
- updated dependencies
- phpstan level 6

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require oprudkyi/flysystem-curlftp
```

Usage
-----

[](#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,

      /** optional limit for curl connection caching
      * allows to reduce count of tcp connections to avoid hitting ftp-server max connections/max clients limits
      * https://curl.se/libcurl/c/CURLOPT_MAXCONNECTS.html
      * if not set then used curl default value (5)
      'maxCachedConnections' => 1,
      */

      /** 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
-------

[](#testing)

```
$ composer test
```

Upgrade from 1.x
----------------

[](#upgrade-from-1x)

- 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](https://flysystem.thephpleague.com/docs/adapter/ftp/)
- `enableTimestampsOnUnixListings` option renamed to `timestampsOnUnixListingsEnabled` for compatibitlity with [Flysystem FTP Adapter](https://flysystem.thephpleague.com/docs/adapter/ftp/)

License
-------

[](#license)

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

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance46

Moderate activity, may be stable

Popularity33

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 59% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~93 days

Recently: every ~27 days

Total

7

Last Release

416d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b0e045f40b937c60de3763d7e8f5c7471d5bc4e7974032335498ed7d66816a67?d=identicon)[oprudkyi](/maintainers/oprudkyi)

---

Top Contributors

[![vyuldashev](https://avatars.githubusercontent.com/u/1809081?v=4)](https://github.com/vyuldashev "vyuldashev (95 commits)")[![oprudkyi](https://avatars.githubusercontent.com/u/3018472?v=4)](https://github.com/oprudkyi "oprudkyi (17 commits)")[![marvinschroeder](https://avatars.githubusercontent.com/u/955978?v=4)](https://github.com/marvinschroeder "marvinschroeder (14 commits)")[![chinlung](https://avatars.githubusercontent.com/u/696924?v=4)](https://github.com/chinlung "chinlung (12 commits)")[![TechAlchemistry](https://avatars.githubusercontent.com/u/4455837?v=4)](https://github.com/TechAlchemistry "TechAlchemistry (7 commits)")[![simoheinonen](https://avatars.githubusercontent.com/u/3840367?v=4)](https://github.com/simoheinonen "simoheinonen (5 commits)")[![tristanveness](https://avatars.githubusercontent.com/u/12807752?v=4)](https://github.com/tristanveness "tristanveness (3 commits)")[![guenard](https://avatars.githubusercontent.com/u/1021524?v=4)](https://github.com/guenard "guenard (2 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (2 commits)")[![adrium](https://avatars.githubusercontent.com/u/23739584?v=4)](https://github.com/adrium "adrium (1 commits)")[![JordiDekker](https://avatars.githubusercontent.com/u/6410216?v=4)](https://github.com/JordiDekker "JordiDekker (1 commits)")[![ExeQue](https://avatars.githubusercontent.com/u/23560353?v=4)](https://github.com/ExeQue "ExeQue (1 commits)")[![hyunkel010](https://avatars.githubusercontent.com/u/18744399?v=4)](https://github.com/hyunkel010 "hyunkel010 (1 commits)")

---

Tags

ftpfilesystemFlysystemfilefilesftpdftpsimplicit FTP over TLS

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/oprudkyi-flysystem-curlftp/health.svg)

```
[![Health](https://phpackages.com/badges/oprudkyi-flysystem-curlftp/health.svg)](https://phpackages.com/packages/oprudkyi-flysystem-curlftp)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k263.6M790](/packages/league-flysystem-aws-s3-v3)[league/flysystem-ftp

FTP filesystem adapter for Flysystem.

2820.8M101](/packages/league-flysystem-ftp)[league/flysystem-local

Local filesystem adapter for Flysystem.

225231.8M39](/packages/league-flysystem-local)[league/flysystem-sftp-v3

SFTP filesystem adapter for Flysystem.

6129.6M91](/packages/league-flysystem-sftp-v3)[league/flysystem-memory

In-memory filesystem adapter for Flysystem.

8533.6M194](/packages/league-flysystem-memory)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
