wgenial / s3-objects-stream-zip-php
S3ObjectsStreamZip is a PHP library to stream objects from AWS S3 as a zip file.
Installs: 73 447
Dependents: 0
Suggesters: 0
Security: 0
Stars: 19
Watchers: 4
Forks: 14
Open Issues: 4
Requires
- php: >=7.2
- aws/aws-sdk-php: ^3.149
- guzzlehttp/guzzle: ^6.5
- maennchen/zipstream-php: ^2.1
Requires (Dev)
- phpunit/phpunit: ^8.5
README
Overview
S3ObjectsStreamZip is a PHP library to stream objects from AWS S3 as a zip file.
Uses AWS SDK Version 3 to stream objects directly from S3.
Install
composer require wgenial/s3-objects-stream-zip-php
Usage
See example folder.
<?php include __DIR__.'/../vendor/autoload.php'; use Aws\S3\Exception\S3Exception; use WGenial\S3ObjectsStreamZip\S3ObjectsStreamZip; use WGenial\S3ObjectsStreamZip\Exception\InvalidParamsException; try { // http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/credentials.html#hardcoded-credentials $zipStream = new S3ObjectsStreamZip(array( 'version' => 'latest', // https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html#version 'region' => 'your-aws-bucket-region', // https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html#region 'credentials' => array( 'key' => 'your-aws-key', 'secret' => 'your-aws-secret' ), // 'endpoint' => '', // https://docs.aws.amazon.com/general/latest/gr/s3.html // 'bucket_endpoint' => '', // https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html#___construct )); $bucket = 'your-s3-bucket'; // required $objects = array( array( 'path' => 'file-text.txt' // required ), array( 'name' => 'file-pdf.pdf', // not required 'path' => 'file-pdf.pdf' // required ), array( 'path' => 'logs/file-log.txt' // required ), array( 'name' => 'image.png', // you can rename an object to zip, not required 'path' => 'file-image.png' // required ) ); $zipname = 'compress.zip'; // required $checkObjectExist = false; // no required | default = false $zipStream->zipObjects($bucket, $objects, $zipname, $checkObjectExist); } catch (InvalidParamsException $e) { echo $e->getMessage(); } catch (S3Exception $e) { echo $e->getMessage(); }
Dependencies
aws/aws-sdk-php
maennchen/zipstream-php
guzzlehttp/guzzle