EucalyptusWalrusInteracting_v1.5.2
S3 Crul は、 Walrus とユーザが、crul ヘッダに加えられているセキュリティ・パラメータをつけた状態で相互にやりとりできるツールです。
ここでは、create、delete、list buckets、put、get、オブジェクトの delete、アクセスコントロールのポリシー設定などを行う事ができます。詳細は、Amazon S3 が提供している S3 インターフェースに関する記述をご覧ください。
S3 Crul が動作するためには、perl-Digest-HMAC パッケージが必要です。システムに入っていなければ、インストールしてください。
好きなエディタを使って、s3curl.pl ファイルを編集します。endpointo のhostname にあたる箇所を、適切に修正してください。
例えば、
my @endpoints = ( 's3.amazonaws.com' );
このようになっているところを、
my @endpoints = ( 'your-host' );
のように書き換えてください。'your-host' の部分には、Walrus が動作しているマシンの IP アドレスかホスト名を記述します。認証を成功させるためには、your-host の部分が、eucarc の環境変数 $S3_URL でセットされているものと同一であることが、重要です。
※ s3curl.pl ファイルを編集時、ホスト名の場所は、純粋にホスト名のみを記述してください。ポート番号やパスの記述は不要です。例えば、xzy.com:8773/services/Walrus の代わりに xyz.com とだけ記載します。ですが、コマンドライン・ツールが使用するときは、前者のようにフルパスで記述しなくてはいけません。
次のコマンドを実行前に、'eucarc' ファイルの環境変数を読み込んでおいてください。
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY <curl options>
証明書は設定ファイル ".s3curl" に追加しておくことが望ましいです。詳細は s3url に付属している README ファイルを御覧ください。
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --put /dev/null -- -s -v $S3_URL/bucketNamebucketName の場所は、作成したいバケット名を指定してください。
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --head -- -s -v $S3_URL/bucketName/objectName > object.head cat object.head
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName/objectName > object
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --del -- -s -v $S3_URL/bucketName/objectName
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --del -- -s -v $S3_URL/bucketNameなお、S3 の仕様に準拠するため、バケットを削除するには、バケットの中身が空になっている必要があります。
"xmlindent"を使って出力をパイプすることができます(xmlindent がシステム上にインストールされていなければ、インストールする必要があります)。
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName?acl | xmlindent > bucket.acl
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName | xmlindent > bucket.list
s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL | xmlindent > bucketlisting