# NAME

Web::AssetLib::OutputEngine::S3 - allows exporting an asset or bundle to an AWS S3 Bucket

On first usage, a cache will be generated of all files in the bucket. This way, we know
what needs to be uploaded and what's already there.

# SYNOPSIS

   my $library = My::AssetLib::Library->new(
       output_engines => [
           Web::AssetLib::OutputEngine::S3->new(
               access_key  => 'AWS_ACCESS_KEY',
               secret_key  => 'AWS_SECRET_KEY',
               bucket_name => 'S3_BUCKET_NAME',
               region      => 'S3_BUCKET_REGION'
           )
       ]
   );

   $library->compile( ..., output_engine => 'S3' );

# USAGE

This is an output engine plugin for [Web::AssetLib](https://metacpan.org/pod/Web::AssetLib).

Instantiate with `access_key`, `secret_key`, `bucket_name`,
and `region` arguments, and include in your library's output engine list.

# PARAMETERS

## access\_key

## secret\_key

AWS access & secret keys. Must have `List` and `Put` permissions for destination bucket.
Required.

## bucket\_name

S3 bucket name. Required.

## region

AWS region name of the bucket. Required.

## region

AWS region name of the bucket

## link\_url

Used as the base url of any asset that gets exported to S3. Make sure it's public!
Your CDN may go here.

## object\_expiration\_cb

Provide a coderef used to calculate the Expiration header. Currently,
no arguments are passed to the callback. Defaults to:

   sub {
       return DateTime->now( time_zone => 'local' )->add( years => 1 );
   };

# SEE ALSO

[Web::AssetLib](https://metacpan.org/pod/Web::AssetLib)
[Web::AssetLib::OutputEngine](https://metacpan.org/pod/Web::AssetLib::OutputEngine)

# AUTHOR

Ryan Lang <[email protected]>