/aws-sdk-php

Official repository of the AWS SDK for PHP (@awsforphp)

Primary LanguagePHPApache License 2.0Apache-2.0

This is the official repository, with added functionality for chmod in the S3 Streamwrapper and improved acl mapping. The following scheme is used to map unix filesystem modes to canned acl:

  • 0xx4 and 0xx5 is public-read,
  • 0xx6 and 0xx7 is public-read-write
  • the rest is private.

AWS SDK for PHP - Version 3

@awsforphp on Twitter Total Downloads Build Status Apache 2 License ![Gitter](https://badges.gitter.im/Join Chat.svg)

The AWS SDK for PHP makes it easy for developers to access Amazon Web Services in their PHP code, and build robust applications and software using services like Amazon S3, Amazon DynamoDB, Amazon Glacier, etc. You can get started in minutes by installing the SDK through Composer or by downloading a single zip or phar file from our latest release.

Resources

  • User Guide – For both getting started and in-depth SDK usage information
  • API Docs – For details about operations, parameters, and responses
  • Blog – Tips & tricks, articles, and announcements
  • Sample Project - A quick, sample project to help get you started
  • Forum – Ask questions, get help, and give feedback
  • Issues – Report issues, submit pull requests, and get involved (see Apache 2.0 License)
  • @awsforphp – Follow us on Twitter
  • For Version 2 of the SDK:

Features

  • Provides easy-to-use HTTP clients for all supported AWS [services][docs-services], regions, and authentication protocols.
  • Is built on Guzzle, and utilizes many of its features, including persistent connections, asynchronous requests, middlewares, etc.
  • Provides convenience features including easy result pagination via Paginators, Waiters, and simple Result objects.
  • Provides a multipart uploader tool for Amazon S3 and Amazon Glacier that can be paused and resumed.
  • Provides an Amazon S3 Stream Wrapper, so that you can use PHP's native file handling functions to interact with your S3 buckets and objects like a local filesystem.
  • Provides the Amazon DynamoDB Session Handler for easily scaling sessions on a fast, NoSQL database.
  • Automatically uses IAM Instance Profile Credentials on configured Amazon EC2 instances.

Getting Started

  1. Sign up for AWS – Before you begin, you need to sign up for an AWS account and retrieve your AWS credentials.
  2. Minimum requirements – To run the SDK, your system will need to meet the minimum requirements, including having PHP >= 5.5 compiled with the cURL extension and cURL 7.16.2+ compiled with a TLS backend (e.g., NSS or OpenSSL).
  3. Install the SDK – Using Composer is the recommended way to install the AWS SDK for PHP. The SDK is available via Packagist under the aws/aws-sdk-php package. Please see the Installation section of the User Guide for more detailed information about installing the SDK through Composer and other means.
  4. Using the SDK – The best way to become familiar with how to use the SDK is to read the User Guide. The Getting Started Guide will help you become familiar with the basic concepts.

Quick Examples

Create an Amazon S3 client

<?php
// Require the Composer autoloader.
require 'vendor/autoload.php';

use Aws\S3\S3Client;

// Instantiate an Amazon S3 client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-west-2'
]);

Upload a file to Amazon S3

<?php
// Upload a publicly accessible file. The file size and type are determined by the SDK.
try {
    $s3->putObject([
        'Bucket' => 'my-bucket',
        'Key'    => 'my-object',
        'Body'   => fopen('/path/to/file', 'r'),
        'ACL'    => 'public-read',
    ]);
} catch (Aws\Exception\S3Exception $e) {
    echo "There was an error uploading the file.\n";
}

Related Projects