確かにこっちのほうがインターフェースが洗練されている。使いやすい。
#!/usr/bin/perl use strict; use warnings; use Net::Amazon::S3; use Perl6::Say; use Data::Dumper; use Config::Pit; my $config = pit_get('s3.amazonaws.com'); my $s3 = Net::Amazon::S3->new({ aws_access_key_id => $config->{aws_access_key_id}, aws_secret_access_key => $config->{aws_secret_access_key}, retry => 1, }); my $client = Net::Amazon::S3::Client->new(s3 => $s3); my @buckets = $client->buckets; for my $bucket (@buckets) { say $bucket->name; my $stream = $bucket->list; until ($stream->is_done) { for my $object ($stream->items) { #next if $object->key =~ /^image\./; say $object->key; say $object->size; #say $object->get; say $object->uri; } } }
ついでにアップロードも試してみた。一回走らせてから、 Firefox addons の S3 Organizer で確認してみる。ちゃんとファイルが作られてる。 URL でアクセスしてみたら access denied だった。 Public 属性をつけないとアップロードしても URL ではアクセスできないとどこかに書いてあったな。それをスクリプトの中でやるには $bucket->object() のときに acl_short => 'public-read' とすればよいみたい。