PHPackages                             rafaeltovar/php-tus-aws-s3 - 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. rafaeltovar/php-tus-aws-s3

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

rafaeltovar/php-tus-aws-s3
==========================

Simple, light, minimum TUS server connected with AWS S3. Based on https://github.com/ankitpokhrel/tus-php

v1.1.1(3y ago)63.8k3[1 issues](https://github.com/rafaeltovar/php-tus-aws-s3/issues)MITPHPPHP &gt;=7.0

Since Nov 6Pushed 2y ago1 watchersCompare

[ Source](https://github.com/rafaeltovar/php-tus-aws-s3)[ Packagist](https://packagist.org/packages/rafaeltovar/php-tus-aws-s3)[ Docs](https://github.com/rafaeltovar/php-tus-aws-s3)[ RSS](/packages/rafaeltovar-php-tus-aws-s3/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (6)Versions (12)Used By (0)

Project not maintained
======================

[](#project-not-maintained)

This project is not being maintained. Please use the original project [ankitpokhrel/tus-php](https://github.com/ankitpokhrel/tus-php) to ensure regular updates. [Here are some notes about using the project with AWS S3](notes-about-tus-aws-s3.md).

PHP TUS protocol server for Amazon Web Service S3
=================================================

[](#php-tus-protocol-server-for-amazon-web-service-s3)

Simple, light, minimum TUS server connected with AWS S3. Based on [ankitpokhrel/tus-php](https://github.com/ankitpokhrel/tus-php).

Versions
--------

[](#versions)

If you are using Symfony, check the table below.

Symfony Versionphp-tus-aws-s3 version^4.3~1.0^5.0 or ^6.0~1.1Installation
------------

[](#installation)

### Composer

[](#composer)

```
composer require rafaeltovar/php-tus-aws-s3:~1.x predis/predis

```

Features
--------

[](#features)

- Implements TUS protocol server for upload files
- AWS S3 multiparts uploads
- Uploads directly to AWS S3
- Use Redis like data cache with Predis
- Flysystem compatible

Documentation
-------------

[](#documentation)

### Understanding TusPhpS3\\Server class constructor

[](#understanding-tusphps3server-class-constructor)

```
use TusPhp\Tus\Server as TusServer;

class Server
extends TusServer
{
    //...
    public function __construct(
        TusPhp\Cache\AbstractCache $cache,
        League\Flysystem\AwsS3v3\AwsS3Adapter $storage,
        TusPhpS3\Http\Request $request,
        $excludeAttrApiPath = [],
        $forceLocationSSL = true)
        {
            //...
        }
}
```

PropertyTypeDetails`$cache``TusPhp\Cache\AbstractCache`We are using `TusPhpS3\Cache\PredisCache` for `Predis` client.`$storage``League\Flysystem\AwsS3v3\AwsS3Adapter`This adapter contains the AWS S3 Client.`$request``TusPhps3\Http\Request`This object contain a `Symfony\Component\HttpFoundation\Request`.`$excludeAttrApiPath``array`Exclude some parts from Api path for create a real Api Base Path for TUS Server. For example, if my Api base path is `https://example.com/uploads` but my upload PATCH is `http://example.com/uploads/{id}` We need exclude `['id']`.`$forceLocationSSL``boolean`Force `location` header property to `https`.### TUS Routes

[](#tus-routes)

```
/**
 * Create new upload
 * or get server configuration
 **/
$routes->add('uploads', '/api/uploads')
        ->controller([UploadController::class, 'upload'])
        ->methods([POST, OPTIONS])

/**
 * Upload files
 * or delete uploads
 **/
$routes->add('uploads', '/api/uploads/{id}')
        ->controller([UploadController::class, 'upload'])
        ->methods([PATCH, DELETE])
```

### Running TUS Server

[](#running-tus-server)

```
use TusPhpS3;

use Aws\S3\S3Client;
use League\Flysystem\AwsS3v3\AwsS3Adapter;

use Symfony\Component\HttpFoundation\Request as HttpRequest;

class UploadController
{
    public function upload()
    {

        // redis connection
        $predis = new Predis\Client('tcp://10.0.0.1:6379');

        // AWS S3 Client
        $S3client = new S3Client([
            'credentials' => [
                'key'    => 'your-key',
                'secret' => 'your-secret',
            ],
            'region' => 'your-region',
            'version' => 'latest|version',
        ]);

        $server = new TusPhpS3\Server(
            new TusPhpS3\Cache\PredisCache($predis),
            new AwsS3Adapter($S3client, 'your-bucket-name', 'optional/path/prefix'),
            new TusPhpS3\Http\Request(HttpRequest::createFromGlobals()),
            ['id'],
            true
        );

        return $server->serve(); // return an TusPhpS3\Http\Response
    }
}
```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~165 days

Recently: every ~326 days

Total

9

Last Release

1053d ago

Major Versions

v1.1.1 → 2.x-dev2023-06-23

PHP version history (2 changes)v1.0.0PHP &gt;=7.0

2.x-devPHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/24e6ecffa06b2821c47a8656644e36e5f4c81350a447fcec0465b972c6ae37ca?d=identicon)[rafaeltovar](/maintainers/rafaeltovar)

---

Top Contributors

[![rafaeltovar](https://avatars.githubusercontent.com/u/791726?v=4)](https://github.com/rafaeltovar "rafaeltovar (19 commits)")

---

Tags

aws-s3chunked-uploadsphpphp-libraryphp70resumable-uploadtustus-protocoluploads

### Embed Badge

![Health badge](/badges/rafaeltovar-php-tus-aws-s3/health.svg)

```
[![Health](https://phpackages.com/badges/rafaeltovar-php-tus-aws-s3/health.svg)](https://phpackages.com/packages/rafaeltovar-php-tus-aws-s3)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.6k509.9M17.0k](/packages/laravel-framework)[silverstripe/framework

The SilverStripe framework

7213.5M2.5k](/packages/silverstripe-framework)[drupal/core-recommended

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

6939.5M343](/packages/drupal-core-recommended)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

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