PHPackages                             gabrielberthier/s3-data-transfer - 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. gabrielberthier/s3-data-transfer

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

gabrielberthier/s3-data-transfer
================================

A package to handle s3 upload and download using PSR-7 interfaces, async operations and Zip options

1.0.3(2y ago)1131PHPPHP ^8.0

Since Aug 1Pushed 2y ago1 watchersCompare

[ Source](https://github.com/gabrielberthier/s3-zip-objects)[ Packagist](https://packagist.org/packages/gabrielberthier/s3-data-transfer)[ RSS](/packages/gabrielberthier-s3-data-transfer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (6)Versions (6)Used By (0)

s3-zip-objects
==============

[](#s3-zip-objects)

A package to handle S3 upload and download using PSR-7 interfaces, async operations and Zip download.

How does it work?
IZI You only need to provide a set of AWS credentials to be able to do both uploading and downloading from resources, which are:

1. AWS IAM key;
2. secret;
3. the bucket region and
4. the version used in your bucket.

Then, it's required to instantiate any of the factories for downloading (S3DownloaderFactory, S3AsyncDownloaderFactory) or uploading (S3UploadingFactory, S3AsyncUploadingFactory), provide some AWS object's info to the factory object you received and voilá, you are able to use the functionalities provided by this lib.

Downloading objects from S3
---------------------------

[](#downloading-objects-from-s3)

```
// Receive a stream from the objects
$stream = $streamResourceCollector->streamCollect(
  $bucketName,
  new ResourceObject('fookey.txt', 'foo-name.txt'),
  new ResourceObject('barkey.txt', 'bar-name.txt')
);

foreach ($resources as $objkey => $obj) {
    // do something
}
```

Uploading objects to S3
-----------------------

[](#uploading-objects-to-s3)

```
// $source may be a object Stream or a string path
$results = $uploadObjects($bucketName, new UploadableObject('test-upload.txt', $source));
```

Zip objects
-----------

[](#zip-objects)

```
  // $streamCollector must be an instance of StreamCollectorInterface
  $streamCollector = (new S3DownloaderFactory()->create(/* credentials */));
  $zip = new S3StreamObjectsZipDownloader($streamCollector);
  $streamOfZipFile = $zip->zipObjects(self::$bucket, [new ResourceObject('test.txt', 'testa.txt')]);
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

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 ~226 days

Total

4

Last Release

1047d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2754bf7a9174f2abafce9571a9d87dc2e705c284aedbe227cab3e3f85c9bfb61?d=identicon)[Gabriel Berthier](/maintainers/Gabriel%20Berthier)

---

Top Contributors

[![gabrielberthier](https://avatars.githubusercontent.com/u/40048106?v=4)](https://github.com/gabrielberthier "gabrielberthier (31 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/gabrielberthier-s3-data-transfer/health.svg)

```
[![Health](https://phpackages.com/badges/gabrielberthier-s3-data-transfer/health.svg)](https://phpackages.com/packages/gabrielberthier-s3-data-transfer)
```

###  Alternatives

[google/cloud

Google Cloud Client Library

1.2k16.2M54](/packages/google-cloud)[stechstudio/laravel-zipstream

A fast and simple streaming zip file downloader for Laravel.

4633.7M3](/packages/stechstudio-laravel-zipstream)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

44643.1k1](/packages/pressbooks-pressbooks)[craftcms/aws-s3

Amazon S3 integration for Craft CMS

631.5M26](/packages/craftcms-aws-s3)[livetyping/hermitage

RESTful image server

332.8k1](/packages/livetyping-hermitage)

PHPackages © 2026

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