[[EucalyptusWalrusInteracting_v1.5.2]] #contents ---- * S3 Crul [#f0cda843] * S3 Curl [#f0cda843] S3 Crul は、 Walrus とユーザが、crul ヘッダに加えられているセキュリティ・パラメータをつけた状態で相互にやりとりできるツールです。 S3 Curl は、 Walrus とユーザが、curl ヘッダに加えられているセキュリティ・パラメータをつけた状態で相互にやりとりできるツールです。 ここでは、create、delete、list buckets、put、get、オブジェクトの delete、アクセスコントロールのポリシー設定などを行う事ができます。詳細は、Amazon S3 が提供している S3 インターフェースに関する記述をご覧ください。 S3 Crul が動作するためには、perl-Digest-HMAC パッケージが必要です。システムに入っていなければ、インストールしてください。 S3 Curl が動作するためには、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 ファイルを御覧ください。 - 例:バケットを作成(create)する s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --put /dev/null -- -s -v $S3_URL/bucketName bucketName の場所は、作成したいバケット名を指定してください。 - オブジェクトを送信(put)する s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --put <filename> -- -s -v $S3_URL/bucketName/objectName objectName には、作成したいオブジェクト名を指定してください。 - オブジェクトの MD5 チェックサムを取得し、サイズと、最終更新日時を取得する s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --head -- -s -v $S3_URL/bucketName/objectName > object.head cat object.head - オブジェクトを取得(get)する s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --get -- -s -v $S3_URL/bucketName/objectName > object - オブジェクトを削除(delete)する s3curl.pl --id $EC2_ACCESS_KEY --key $EC2_SECRET_KEY --del -- -s -v $S3_URL/bucketName/objectName - バケットを削除(delete)する 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 ---- 原文:http://open.eucalyptus.com/wiki/s3curl