Amazon-S3-Thin
view release on metacpan or search on metacpan
t/05_presigned_post.t view on Meta::CPAN
{'x-amz-date' => '20191101T000000Z'},
],
expiration => '2019-11-02T00:00:00Z',
}),
'x-amz-signature' => '2566acd84ef09a390c72c6e966eb7b72fb6e444ac826c81a1b289e23465b5f44',
],
}, 'passing $expire is added to expiration in policy';
subtest 'signature v2' => sub {
eval {
my $client = Amazon::S3::Thin->new({%$args, signature_version => 2});
$client->generate_presigned_post($bucket, $key);
};
like $@, qr/generate_presigned_post is only supported on signature v4/;
};
subtest 'bucket and key are required' => sub {
eval {
$client->generate_presigned_post();
};
like $@, qr/must specify bucket/;
eval {
$client->generate_presigned_post($bucket);
};
like $@, qr/must specify key/;
};
subtest 'session_token' => sub {
my $client = Amazon::S3::Thin->new({%$args, aws_session_token => 'dummy_session_token'});
is_deeply $client->generate_presigned_post($bucket, $key), {
url => 'http://s3.ap-north-east-1.amazonaws.com/test-bucket/',
fields => [
key => $key,
'x-amz-algorithm' => 'AWS4-HMAC-SHA256',
'x-amz-credential' => 'dummy_access_key_id/20191101/ap-north-east-1/s3/aws4_request',
'x-amz-date' => '20191101T000000Z',
'x-amz-security-token' => 'dummy_session_token',
policy => policy({
conditions => [
{bucket => 'test-bucket'},
{key => 'dir/private.txt'},
{'x-amz-algorithm' => 'AWS4-HMAC-SHA256'},
{'x-amz-credential' => 'dummy_access_key_id/20191101/ap-north-east-1/s3/aws4_request'},
{'x-amz-date' => '20191101T000000Z'},
{'x-amz-security-token' => 'dummy_session_token'},
],
expiration => '2019-11-01T01:00:00Z',
}),
'x-amz-signature' => '9b5167f1e201862214be6d26bb02ebd50d6e46d3e93319a6e17988047ab531b5',
],
};
};
done_testing;
package MockUA;
sub new {
my $class = shift;
bless {}, $class;
}
sub request {
my $self = shift;
my $request = shift;
return MockResponse->new({request =>$request});
}
package MockResponse;
sub new {
my ($class, $self) = @_;
bless $self, $class;
}
sub request {
my $self = shift;
return $self->{request};
}
;
( run in 2.268 seconds using v1.01-cache-2.11-cpan-ad19def0cd9 )