# Uppy + AWS S3 Example

This example uses a server-side PHP endpoint to sign uploads to S3.

## Running It

To run this example, make sure you've correctly installed the **repository
root**:

```bash
yarn || corepack yarn install
yarn build || corepack yarn build
```

That will also install the npm dependencies for this example.

This example also uses the AWS PHP SDK. To install it,
[get composer](https://getcomposer.org) and run `composer update` in this
folder.

```bash
corepack yarn workspace @uppy-example/aws-php exec "composer update"
```

Configure AWS S3 credentials using
[environment variables](https://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/credentials.html#environment-credentials)
or a
[credentials file in `~/.aws/credentials`](https://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/credentials.html#credential-profiles).
Configure a bucket name and region in the `s3-sign.php` file.

Then, again in the **repository root**, start this example by doing:

```bash
corepack yarn workspace @uppy-example/aws-php start
```

The demo should now be available at http://localhost:8080.

You can use a different S3-compatible service like GCS by configuring that
service in `~/.aws/config` and `~/.aws/credentials`, and then providing
appropriate environment variables:

```bash
AWS_PROFILE="gcs" \
COMPANION_AWS_ENDPOINT="https://storage.googleapis.com" \
COMPANION_AWS_BUCKET="test-bucket-name" \
  corepack yarn run example aws-php
```
