さくらbase StrageをPerlから使ってみる
さくらBaseストレージを使ってみよう。 バケットを作るところはコマンドラインで作りたいなと 思い。 開発機WindowsだからS3Expressというのをダウンロードしてみた。
Amazon S3 Tools: Command Line S3 Client and S3 Backup for Windows, Linux: s3cmd, s3express
さくらのBASE Storageで「access key」「secret key」に相当する項目は? ネームスペース管理画面において、ユーザ名が「access key」に、トークンが「secret key」に相当します
さくらのFAQにアクセスキーとシークレットキーの説明あり、なるほど。
S3ExpressはAmazon S3専用?接続先をさくらに変えられないのかな。
setopt -endpoint:/b.storage.sakura.ad.jp
どうも、ネームスペース=バケットになっているようで S3Expressコマンドからmkbktする必要はないようでした。 (現在のBASEストレージは1バケットしか割り当ててもらえないということ。β版だからだと思われる。)
しかし、Perlで使う時に問題が Net::Amazon::S3はURLをカスタマイズできそうになくて、 S3互換とつなげないような気がする。 Amazon::S3モジュールだとhostというキーの値でカスタマイズできそう。
以下のようなソースで無事にさくらBASEストレージに格納されるところまで 確認できました。
my $s3 = Amazon::S3->new({ aws_access_key_id => $self->config->{aws_access_key_id}, aws_secret_access_key => $self->config->{aws_secret_access_key}, host => $self->config->{aws_host}, retry => 1, }); my $bucket = $s3->bucket($self->config->{aws_bucket}); #中略 $bucket->add_key_filename( $savename, $fname_mp3, { content_type => 'audio/mp3', }, ) or die $s3->err . ": " . $s3->errstr;
Amazon::S3::Bucket - search.cpan.org でいろいろ操作すればいいかんじ。