programster/aws-wrapper

A package to make it easier to interface with the AWS API.

4.1.0 2024-01-08 16:43 UTC

README

This package aims to wrap around Amazons PHP sdk so that it provides the developer with a more object-orientated interface. Thus, the developer will spend less time having to read the documentation in order to look-up the parameters they need to pass into an array.

This version of the wrapper is based on version 3 of the SDK.

Installation

composer require programster/aws-Wrapper

Example Usage

<?php

require_once(__DIR__ . '/vendor/autoload.php');

define('S3_BUCKET', 'my-bucket-name');
define('AWS_KEY', 'someKeyValueHere');
define('AWS_SECRET', 'someAwsSecretHere');

$awsWrapper = new \Programster\AwsWrapper\AwsWrapper(
    AWS_KEY,
    AWS_SECRET,
    Programster\AwsWrapper\Enums\AwsRegion::create_EU_W1()
);

# Get the S3 client for interfacing with S3, rather than EC2
$s3Client = $awsWrapper->getS3Client();

# Create a private file in S3 called "test-file.txt" that contains the text
# "hello world" in our bucket.
$response = $s3Client->createFile(
    S3_BUCKET,
    "hello world",
    'test-file.txt',
    Programster\AwsWrapper\S3\Acl::createAuthenticatedRead(),
    Programster\AwsWrapper\S3\StorageClass::createStandard()
);

Debugging

I've occasionally had issues with running commands that would just block and never return. The solution for me was to install the php-xml package with

sudo apt-get install php-xml

I will remove this note once I have figured out how to make composer require that for installation.