PHPackages                             keboola/php-file-storage-utils - 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. keboola/php-file-storage-utils

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

keboola/php-file-storage-utils
==============================

Set of helpers and abstractions above file storage providers

v0.2.7(1y ago)075.1k↓29.8%[1 PRs](https://github.com/keboola/php-file-storage-utils/pulls)7MITPHPPHP &gt;=8.1

Since Nov 18Pushed 1y ago14 watchersCompare

[ Source](https://github.com/keboola/php-file-storage-utils)[ Packagist](https://packagist.org/packages/keboola/php-file-storage-utils)[ RSS](/packages/keboola-php-file-storage-utils/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (9)Dependencies (11)Versions (19)Used By (7)

File storage utils [![Build Status](https://camo.githubusercontent.com/1da0bcd8953c9daff320308902e442d954b43913c4e1106e95bcda96b9ac8ed6/68747470733a2f2f6465762e617a7572652e636f6d2f6b65626f6f6c612d6465762f7068702d66696c652d73746f726167652d7574696c732f5f617069732f6275696c642f7374617475732f6b65626f6f6c612e7068702d66696c652d73746f726167652d7574696c733f6272616e63684e616d653d6d6173746572)](https://dev.azure.com/keboola-dev/php-file-storage-utils/_build/latest?definitionId=12&branchName=master) [![Maintainability](https://camo.githubusercontent.com/8d8429cad0f9fc5a5846c62b525a7af142ac749fac106a64eacb644fdd2c8729/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f66653938333830336562376437316138376133342f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/keboola/php-file-storage-utils/maintainability)
==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#file-storage-utils--)

PHP utils around Azure blob storage and Amazon S3

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

[](#installation)

```
composer require keboola/php-file-storage-utils

```

Usage
-----

[](#usage)

### Azure Blob storage

[](#azure-blob-storage)

#### Retry middleware

[](#retry-middleware)

```
$blobClient = BlobRestProxy::createBlobService(...);
$blobClient->pushMiddleware(Keboola\FileStorage\Abs\RetryMiddlewareFactory::create(
        (optional) RetryMiddlewareFactory::DEFAULT_NUMBER_OF_RETRIES,
        (optional) RetryMiddlewareFactory::DEFAULT_RETRY_INTERVAL,
        (optional) RetryMiddlewareFactory::EXPONENTIAL_INTERVAL_ACCUMULATION
));
```

#### Best practice

[](#best-practice)

use ClientFactory to preset client and middlewares

```
\Keboola\FileStorage\Abs\ClientFactory::createClientFromConnectionString(
        string $connectionString,
        ?LoggerInterface $logger = null
);
```

Development
-----------

[](#development)

Run tests with:

```
docker compose run --rm testsXX

```

where XX is PHP version (81 - 83), e.g.:

```
docker compose run --rm tests81

```

### Resources Setup

[](#resources-setup)

#### Azure blob storage

[](#azure-blob-storage-1)

```
export PHP_FS_UTILS_RG=testing-php-file-storage-utils

```

Create a resource group:

```
az group create --name $PHP_FS_UTILS_RG --location "northeurope"

```

Deploy the storage account

```
az group deployment create --resource-group $PHP_FS_UTILS_RG --template-file arm-template.json

```

command will output `ABS_ACCOUNT_NAME`, `ABS_ACCOUNT_KEY` which has to be added to `.env` file

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance46

Moderate activity, may be stable

Popularity30

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 76.1% 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 ~202 days

Recently: every ~254 days

Total

9

Last Release

411d ago

PHP version history (2 changes)v0.1.0PHP &gt;=7.1

v0.2.7PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/101dbf2551a0709ddab522f97669f13a2c4cc2d0a1e8d009f3af6ba80accb1a9?d=identicon)[Keboola](/maintainers/Keboola)

---

Top Contributors

[![zajca](https://avatars.githubusercontent.com/u/180148?v=4)](https://github.com/zajca "zajca (54 commits)")[![pepamartinec](https://avatars.githubusercontent.com/u/271753?v=4)](https://github.com/pepamartinec "pepamartinec (7 commits)")[![romanbracinik](https://avatars.githubusercontent.com/u/6448364?v=4)](https://github.com/romanbracinik "romanbracinik (4 commits)")[![ErikZigo](https://avatars.githubusercontent.com/u/1726727?v=4)](https://github.com/ErikZigo "ErikZigo (2 commits)")[![martinjunger](https://avatars.githubusercontent.com/u/84506613?v=4)](https://github.com/martinjunger "martinjunger (2 commits)")[![odinuv](https://avatars.githubusercontent.com/u/4319320?v=4)](https://github.com/odinuv "odinuv (2 commits)")

---

Tags

s3awsstorageazureblobkeboola

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/keboola-php-file-storage-utils/health.svg)

```
[![Health](https://phpackages.com/badges/keboola-php-file-storage-utils/health.svg)](https://phpackages.com/packages/keboola-php-file-storage-utils)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k532.1M2.5k](/packages/aws-aws-sdk-php)[laravel/framework

The Laravel Framework.

34.7k532.1M19.2k](/packages/laravel-framework)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k11](/packages/tempest-framework)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21764.8M1.6k](/packages/drupal-core)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6941.5M395](/packages/drupal-core-recommended)

PHPackages © 2026

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