NAME
Template::Provider::Amazon::S3 - Enable template toolkit to use Amazon's S3 service as a provier of templates.
VERSION
version 0.009
SYNOPSIS
my $tt_config = {
LOAD_TEMPLATES => [
Template::Provider::Amazon::S3->new( INCLUDE_PATH => [ 'dir1' , 'dir2' ] )
]
};
my $tt = Template->new( $tt_config );
$tt ->process( 'file_on_s3' , $vars ) || die $tt ->error;
|
METHODS
client
This method will return the S3 client.
|
bucket
This method will return the bucket that was configure in the begining.
|
last_refresh
This method will return the DateTime object of the last
time the internal cache was refreshed.
|
refresh_cache
Call this method to refresh the cache.
|
object
returns the object for a given key.
This method take a key parameter.
$obj = $self ->object( key => 'some_path' );
|
INHERITED METHODS
These methods are inherited from Template::Provider and function in the same way.
|
- fetch()
-
- store()
-
- load()
-
- include_path()
-
- paths()
-
- DESTROY()
-
CLASS Methods
$obj = $class ->new( %parameters )
constructs a new instance.
Accepts all the arguments as the base class L<Template::Provider>, with the following additions:
|
- key
-
This is the Amazon Access key, if this is not provided we will try
and load this from the AWS_ACCESS_KEY_ID environment variable.
|
- secret
-
This is the Amazon Secret Key, if this is not provided we will try
and load this from the AWS_ACCESS_KEY_SECRET environment variable.
|
- bucketname
-
This is the bucket that will contain all the templates. If this it
not provided we will try and get it from the AWS_TEMPLATE_BUCKET
envrionement variable.
|
- INCLUDE_PATH
-
This should be an array ref to directories that will be searched for the
template. This method is really naive, and just prepends each entry to
the template name.
|
- refresh_in_seconds
-
This is the number of seconds that the cache will expire. The default for this
is 86400 seconds, which is 1 day. This value can also be set via the environment
variable TEMPLATE_AWS_REFRESH_IN_SECONDS.
|
- cache_options
-
This is the options to provide to the L<CHI> cache module. This can also be set
by the environment variable TEMPLATE_CACHE_OPTIONS. If using the environment
variable, the values need to be L<JSON> encoded. Otherwise the value will be
an in memory store. The option send is the following:
{
driver => 'RawMemory' ,
global => 1
}
|
Note
Note do not use the RELATIVE or the ABSOLUTE parameters, I don't know what will happen if they are used.
|
SEE ALSO
- Net::Amazon::S3::Client
-
- Net::Amazon::S3::Client::Bucket
-
- Net::Amazon::S3::Client::Object
-
- CHI
-
AUTHOR
Gautam Dey <gdey@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Gautam Dey <gdey@cpan.org>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.