PHPackages                             slivka-b/flysystem-selectel - 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. slivka-b/flysystem-selectel

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

slivka-b/flysystem-selectel
===========================

Flysystem adapter for Selectel Cloud Storage

1.2.3(4y ago)01.6kMITPHPPHP &gt;=5.6

Since Mar 11Pushed 4y agoCompare

[ Source](https://github.com/SviatoslavBereznitskyi/flysystem-selectel)[ Packagist](https://packagist.org/packages/slivka-b/flysystem-selectel)[ Docs](https://github.com/argentcrusade/flysystem-selectel)[ RSS](/packages/slivka-b-flysystem-selectel/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (4)Versions (9)Used By (0)

Flysystem Adapter for Selectel Cloud Storage
============================================

[](#flysystem-adapter-for-selectel-cloud-storage)

[![Build Status](https://camo.githubusercontent.com/f0cdda93a1d6aa5d8e49a2bfe6aade4960a16d9a49b50b4d1982b237ac4076ce/68747470733a2f2f6170692e7472617669732d63692e6f72672f417267656e74437275736164652f666c7973797374656d2d73656c656374656c2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/ArgentCrusade/flysystem-selectel)[![StyleCI](https://camo.githubusercontent.com/cd182ab07ba45a21302682c2cc3071f22a794577c0502dfbadef63f6aab09c6e/68747470733a2f2f7374796c6563692e696f2f7265706f732f38343633373739322f736869656c643f6272616e63683d6d6173746572267374796c653d666c6174)](https://styleci.io/repos/84637792)[![ScrutinizerCI](https://camo.githubusercontent.com/6bde1eae57f71a417d5400aede0544dad4fd812c84754c1ab9f6e98ec31fc9a1/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f417267656e74437275736164652f666c7973797374656d2d73656c656374656c2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/ArgentCrusade/flysystem-selectel/)[![Latest Version on Packagist](https://camo.githubusercontent.com/b572b1104e2cc85958417a05775229a1ed64c2cd4747ed68a814dbd5b9a4b63c/68747470733a2f2f706f7365722e707567782e6f72672f617267656e74637275736164652f666c7973797374656d2d73656c656374656c2f76657273696f6e3f666f726d61743d666c6174)](https://packagist.org/packages/argentcrusade/flysystem-selectel)[![Software License](https://camo.githubusercontent.com/7cc3c8757a391cb9a043423ef2819171a25e95d5628a2d9c4b4e315ac39f3d7e/68747470733a2f2f706f7365722e707567782e6f72672f617267656e74637275736164652f666c7973797374656d2d73656c656374656c2f6c6963656e73653f666f726d61743d666c6174)](LICENSE.md)

Requirements
------------

[](#requirements)

This package requires PHP 5.6 or higher.

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

[](#installation)

You can install the package via composer:

```
$ composer require argentcrusade/flysystem-selectel
```

Upgrade
-------

[](#upgrade)

### From 1.0\* to 1.1.0

[](#from-10-to-110)

New setting `container_url` was added. You can set your container's custom domain here (for example, `https://static.example.org`) and this option will be used when retrieving fully qualified URLs to files and directories.

Usage
-----

[](#usage)

```
use ArgentCrusade\Flysystem\Selectel\SelectelAdapter;
use ArgentCrusade\Selectel\CloudStorage\Api\ApiClient;
use ArgentCrusade\Selectel\CloudStorage\CloudStorage;
use League\Flysystem\Filesystem;

$api = new ApiClient('selectel-username', 'selectel-password');
$storage = new CloudStorage($api);
$container = $storage->getContainer('container-name');

$adapter = new SelectelAdapter($container);
$filesystem = new Filesystem($adapter);
```

Laravel Integration
-------------------

[](#laravel-integration)

You can use this adapter with Laravel's [Storage System](https://laravel.com/docs/5.5/filesystem).

If you're running Laravel 5.5+ this package will auto-added to your providers list via auto-discovery feature (requires version 1.2+ of this package).

### Laravel &lt;= 5.4

[](#laravel--54)

Add `ArgentCrusade\Flysystem\Selectel\SelectelServiceProvider::class` to your providers list in `config/app.php`

```
/*
 * Package Service Providers...
 */
ArgentCrusade\Flysystem\Selectel\SelectelServiceProvider::class,
```

### All Laravel versions

[](#all-laravel-versions)

Add `selectel` disk to `config/filesystems.php` configuration file (`disks` section):

```
'selectel' => [
    'driver' => 'selectel',
    'username' => 'selectel-username',
    'password' => 'selectel-password',
    'container' => 'selectel-container',
    'container_url' => 'https://static.example.org',
]
```

`container_url` setting (new in version **1.1.0**) allows you to override default Selectel's CDN domain (if you have custom domain attached). You may omit this setting if you're using default domain, file URLs will look like `http://XXX.selcdn.ru/container_name/path/to/file.txt`, where `XXX` - your unique subdomain (`X-Storage-Url` header value).

Now you can use Selectel disk as

```
use Illuminate\Support\Facades\Storage;

Storage::disk('selectel')->put('file.txt', 'Hello world');
```

Also you may want to set `selectel` as default disk to ommit `disk('selectel')` calls and use storage just as `Storage::put('file.txt', 'Hello world')`.

For more info please refer to Laravel's [Storage System](https://laravel.com/docs/5.4/filesystem) documentation.

Unsupported methods
-------------------

[](#unsupported-methods)

Due to the implementation of the Selectel API some methods are missing or may not function as expected.

### Visibility management

[](#visibility-management)

Selectel provides visibility support only for Containers, but not for files. The change of visibility for the entire container instead of a single file/directory may be confusing for adapter users. Adapter will throw `LogicException` on `getVisibility`/`setVisbility` calls.

### Directories management

[](#directories-management)

Currently Selectel Adapter can display and delete only those directories that were created via `createDir` method. Dynamic directories (those that were created via `write`/`writeStream` methods) can not be deleted or listed as directory.

```
$fs = new Filesystem($adapter);

$fs->createDir('images'); // The 'images' directory can be deleted and will be listed as 'dir' in the results of `$fs->listContents()`.

$fs->write('documents/hello.txt'); // The 'documents' directory can not be deleted and won't be listed in the results of `$fs->listContents()`.
```

Note on Closing Streams
-----------------------

[](#note-on-closing-streams)

Selectel Adapter leaves the streams **open** after consuming them. Make sure that you've closed all streams that you opened.

Change log
----------

[](#change-log)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Testing
-------

[](#testing)

```
$ vendor/bin/phpunit
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

License
-------

[](#license)

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

###  Health Score

30

—

LowBetter than 67% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 95.2% 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 ~231 days

Recently: every ~395 days

Total

8

Last Release

1677d ago

Major Versions

0.9.0 → 1.0.02017-03-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/593a292c66ea42e04d10ede2b2706869fea2df13f7ac3dc766c83e26a7699fec?d=identicon)[SviatoslavBereznitskyi](/maintainers/SviatoslavBereznitskyi)

---

Top Contributors

[![tzurbaev](https://avatars.githubusercontent.com/u/7444747?v=4)](https://github.com/tzurbaev "tzurbaev (20 commits)")[![SviatoslavBereznitskyi](https://avatars.githubusercontent.com/u/37864596?v=4)](https://github.com/SviatoslavBereznitskyi "SviatoslavBereznitskyi (1 commits)")

---

Tags

Flysystemselectel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/slivka-b-flysystem-selectel/health.svg)

```
[![Health](https://phpackages.com/badges/slivka-b-flysystem-selectel/health.svg)](https://phpackages.com/packages/slivka-b-flysystem-selectel)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k257.1M684](/packages/league-flysystem-aws-s3-v3)[league/flysystem-local

Local filesystem adapter for Flysystem.

226221.1M24](/packages/league-flysystem-local)[oneup/flysystem-bundle

Integrates Flysystem filesystem abstraction library to your Symfony project.

64422.6M59](/packages/oneup-flysystem-bundle)[league/flysystem-bundle

Symfony bundle integrating Flysystem into Symfony applications

40028.5M67](/packages/league-flysystem-bundle)[spatie/flysystem-dropbox

Flysystem Adapter for the Dropbox v2 API

3724.4M64](/packages/spatie-flysystem-dropbox)[league/flysystem-memory

In-memory filesystem adapter for Flysystem.

8532.5M166](/packages/league-flysystem-memory)

PHPackages © 2026

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