perlのs3syncをあきらめた話

AmazonS3へデータをバックアップするツールに、s3syncがある。
ググってみると、ruby版の経験談はたくさんあるけど、perl版がほとんどない。(なぜだろう。。。)と思いつつ、チャレンジ。

やることは多分
(1)サンプルコードをダウンロード
(2)必要なperlモジュールをインストール
(3)サンプルコードをベースに、バックアップスクリプトを作成
(4)テスト(バケットの下にディレクトリ構造を持ったバックアップができたら目的達成)

環境はMacOSXです。

(1)まずはサンプルソースをダウンロード。
AmazonWebServicesのDiscussionForumsにソースらしきファイルがあるので、とりあえずダウンロード。
s3.plとs3sync.plの2ファイルです。

(2)中身を見てみると、


use Getopt::Std;
use XML::Simple;

use S3::AWSAuthConnection;



こんなモジュールがあればよいらしいので、一応、入ってるか見てみる。


$ perl -MGetopt::Std -e 1
$ perl -MXML::Simple -e 1
$ perl -MS3::AWSAuthConnection -e 1
Can't locate S3/AWSAuthConnection.pm in @INC (@INC contains: /Library/Perl/Updates/5.8.8/darwin-thread-multi-2level /Library/Perl/Updates/5.8.8 /System/Library/Perl/5.8.8/darwin-thread-multi-2level /System/Library/Perl/5.8.8 /Library/Perl/5.8.8/darwin-thread-multi-2level /Library/Perl/5.8.8 /Library/Perl /Network/Library/Perl/5.8.8/darwin-thread-multi-2level /Network/Library/Perl/5.8.8 /Network/Library/Perl /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.8 /Library/Perl/5.8.6 /Library/Perl/5.8.1 .).
BEGIN failed--compilation aborted.


足らないのは「S3::AWSAuthConnection」だけのようなので、
CPANからインストールしようしたところ、


cpan> install S3::AWSAuthConnection
CPAN: Storable loaded ok
Going to read /var/root/.cpan/Metadata
Database was generated on Sat, 30 May 2009 22:27:00 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/01mailrc.txt.gz
Going to read /var/root/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/02packages.details.txt.gz
Going to read /var/root/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Sun, 28 Jun 2009 04:27:05 GMT

There's a new CPAN.pm version (v1.9402) available!
[Current version is v1.7602]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...

Fetching with LWP:
ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/03modlist.data.gz
Going to read /var/root/.cpan/sources/modules/03modlist.data.gz
Going to write /var/root/.cpan/Metadata
Warning: Cannot install S3::AWSAuthConnection, don't know what it is.
Try the command

i /S3::AWSAuthConnection/

to find objects with matching identifiers.



CPANにないのかな?と、S3::AWSAuthConnection installでググってみるS3 Backup - Missing Perl module S3::AWSAuthConnectに、Muck::FS::S3::AWSAuthConnectionという名前のモジュールだという記述あり。

さらにそんな記載がないか、AWSのDisscussionForumsを改めて読んでみると、なんと、perlは大変だからrubyで書き直してるとの記述が。。。

バグ修正や機能追加はもうないようなので、あきらめ、です。

TwitterのBadgeをつけてみた

TwitterのBadge(ブログパーツ)をつけてみた。
Twitterのサイトから、Bloggerを選択するだけ。

他のブログの場合は「Others」を選んで発行されたJavascriptのタグをブログに貼付ければOK。

決済APIのサービス

決済機能を外部提供しているサービス。

販売側として決済機能をつけるとしたら、やはり、大手の決済機能に乗っかった方が、ユーザーのハードルも下がるはず。

楽天あんしん支払いサービス
Yahooウォレット決済サービス
Amazon FPS
※現時点で日本(円)でサービス提供はなさげ。定期的な支払いにも対応してるようなので早く日本対応してほしいものです。
Google Checkout
※サポートは英語ですが、アカウント作れば日本でも使えるかも。日本のユーザーの利用は多くない気がするが。

NET::Amazon::S3でbucketを作成

perlモジュールNET::Amazon::S3を使ってbucketを作成する方法。

#!/usr/bin/perl

use strict;
use warnings;
use Net::Amazon::S3;

my $s3 = Net::Amazon::S3->new(
{ aws_access_key_id => 'ACCESSKEYID',
aws_secret_access_key => 'SECRETACCESSKEY',
}
);

my $bucketname = 'BUCKETNAME';
my $bucket = $s3->add_bucket( { bucket => $bucketname } )
or die $s3->err . ": " . $s3->errstr;

bucketnameはAmazonS3の中で一意になる必要があります。
自分で作ったbucketのサブbucketとして作成する方法は、
今のところ分かりません。。。

MACにCPANをインストール
MACにNET::Amazon::S3をインストール
NET::Amazon::S3を使ってAmazonS3へファイルをアップロードしてみた
NET::Amazon::S3でbucketを作成


参考:(Perl) LinuxサーバからAmazon S3を用いる (1/2)
参考:刺身☆ブーメランのはてなダイアリー
参考:CPAN

iPhoneOS3.0をインストール

アップデート時に不具合があったとかいうニュースもあるようですが、
アクセス集中した結果でしょう、たぶん、今なら大丈夫、かな、と。

PCにiPhoneをつないで、iTunesを起動。
デバイスの画面で「アップデートを確認」を押すと、ダウンロードが始まりました。

ダウンロードの進捗が分かるようなバーがでないのかなぁ、と少し不安になった頃、ふと左のメニューの「Store」の欄に「ダウンロード」が表示されてることに気づく。

約230MB。くるくるすること12分、ダウンロードが完了して、インストールが始まりました。

さらに待つこと・・・10分。

インストールが完了し、何やらメッセージが出て消えて、どうやらiPhoneが再起動。
いったんiTunesからiPhoneの認識が消えましたが、iPhoneの再起動が完了すると自動で再接続され、無事OS3.0にアップデートされました。

とりあえず、コピペを試めそうと、なんとなくダブルタップ。

でけたでけた。さすがアップル。

TouchTermの設定(Settings --> Advanced)

iPhoneのsshクライアントアプリ、TouchTermの設定項目メモ。

■設定項目(デフォルト値)

■Persistent Connections(OFF)
 ・ON=GNU screenを使用する
 ・OFF=GNU screenを使用しない

■Encoding(UTF-8)
 ・UTF-8
 ・ASCII
 ・ISO 8559 Latin-1
 ・Big5
 ・Big5-5E
 ・Big5 HKSCS
 ・GBK
 ・GB 18030
 ・GB2312
 ・ISO 2022 Japanese
 ・ISO 8559 Latin-2
 ・ISO 8559 Latin-3
 ・ISO 8559 Latin-4
 ・ISO 8559 Latin-5
 ・ISO 8559 Latin-6
 ・ISO 8559 Latin-7
 ・ISO 8559 Latin-8
 ・ISO 8559 Latin-9
 ・ISO 8559 Latin-10

■Use SSH Protocol1(OFF)
 ・ON=SSH ver1を使用する
 ・OFF=SSH ver2を使用する

■Carrier Activation(ON)
 ・ON=3G通信網を使っている場合、空のリクエストを投げて通信網への接続を自動で行う
 ・OFF=自動接続を行わない

■Incoming Data Lock(ON)
 ・ON=大量の出力が発生した場合にデータをロックする
 ・OFF=データロックの制御を行わない

■Verbose Debug Log(OFF)
 ・ON=
 ・OFF=

TouchTermの設定(目次)

Appストアはこちらから⇒ iTunes Store(Japan)