/S3-Storage-SDK

S3 Storage SDK for working with AWS S3 Storage.

Primary LanguagePHPBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

S3 Storage SDK

S3 Storage SDK for working with AWS S3 Storage.

Documentation

The documentation for the AWS S3 Storage Api can be found here.

Installation

The preferred way to install this extension is through composer.

Either run

composer require idapgroup/s3-storage-sdk

or add

{
  "require": {
      "idapgroup/s3-storage-sdk": "^1.0.0"
  }
}

to the requirement section of your composer.json file.

Quickstart

Create a S3 Storage

<?php

require 'vendor/autoload.php';

use IdapGroup\S3StorageSdk\Storage\S3Storage;

$s3Client = new S3Client([
            'region' => 'S3_REGION',
            'version' => 'S3_API_VERSION',
            'credentials' => [
                'key' => 'S3_KEY',
                'secret' => 'S3_SECRET'
            ],
        ]);

$readStorage = new S3Storage($s3Client, 'S3_READ_BUCKET', 'S3_REGION');
$writeStorage = new S3Storage($s3Client, 'S3_WRITE_BUCKET', 'S3_REGION');

Examples

Save file

// Create an instance of class that implements UploadedFileInterface
$file = new UploadedFile();
$readStorage->save($file, 'filename');

Transfer the file to the file storage

// Create an instance of class that implements S3FileInterface or extends S3File
$imageFile = new S3File('file_path', $writeStorage->getBucket());
$readStorage->transfer($imageFile);

Delete the file from the file storage

$readStorage->delete('file_path');

Check the existence of the file in the file storage

$readStorage->has('file_path');

Get the file

$readStorage->get('file_path');

Get the bucket name

$bucketName = $readStorage->getBucket();

Get the bucket region

$bucketRegion = $readStorage->getRegion();

Build URL to manual upload a file

$bucketName = $writeStorage->buildPutUrl('filename');