Amazon::S3を使ってみた。 Expiresヘッダとして現在の時刻から10年後を指定しています。
#!/usr/bin/perl use strict; use warnings; use Amazon::S3; use HTTP::Date qw(time2str); use YAML; my $aws_access_key_id = ""; my $aws_secret_access_key = ""; my $s3 = Amazon::S3->new( { aws_access_key_id => $aws_access_key_id, aws_secret_access_key => $aws_secret_access_key, retry => 1 } ); my $bucket = $s3->bucket('your_bucket_name'); my $key = 'test/image_from_perl.jpg'; my $filename = './test_image.jpg'; $bucket->add_key_filename( $key, $filename, { content_type => 'image/jpeg', expires => time2str( time + ( 365 * 24 * 60 * 60 ) * 10 ), acl_short => 'public-read', } ); # print key's configure my $conf = $bucket->head_key($key); print Dump $conf;