- 追加された行はこの色です。
- 削除された行はこの色です。
[[EucalyptusWalrusInteracting_v1.5.2]]
#contents
----
* S3 Crul [#f0cda843]
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 ファイルを御覧ください。
- 例:バケットを作成(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