2.4.4. PHP S3 の例
S3 アクセスには PHP スクリプトを使用することもできます。PHP を使用して Ceph Object Gateway サーバーにアクセスするために使用されるノードで以下の手順を実行します。
以下は、php v5.4.16 および aws-sdk v2.8.24 に対してテストされています。php >= 5.5+ が必要なため、 ない でください。php には aws-sdk の最新バージョンを使用しPHP 5.5 は、RHEL 7 のデフォルトリポジトリーでは利用できません。php 5.5 を使用する場合は、epel およびその他のサードパーティーのリポジトリーを有効にする必要があります。また、php 5.5 および最新バージョンの aws-sdk の設定オプションも異なります。
PHP/AWS SDK の設定
PHP を設定するには、以下の手順を実行します。
rootとして、phpをインストールします。yum install php
# yum install phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow php の
aws-sdkをインストールします。php 用に
aws-sdkの zip アーカイブを ダウンロード し、展開します。
コネクションの作成
プロジェクトディレクトリーを作成します。
mkdir php_s3 cd php_s3
$ mkdir php_s3 $ cd php_s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 展開した
awsディレクトリーをプロジェクトのディレクトリーにコピーします。以下に例を示します。cp -r ~/Downloads/aws/ ~/php_s3/
$ cp -r ~/Downloads/aws/ ~/php_s3/Copy to Clipboard Copied! Toggle word wrap Toggle overflow コネクションファイルを作成します。
vim conn.php
$ vim conn.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow conn.phpファイルに以下のコンテンツを貼り付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
;FQDN_of_gateway_node>をゲートウェイノードの FQDN に置き換えます。Red Hat Ceph Storage オブジェクトゲートウェイガイド で説明されているように、my-access-keyおよびmy-secret-keyは、S3アクセスのradosgwが作成されたときに生成されたaccess_keyおよびsecret_keyに置き換えます。また、path_to_awsを、phpプロジェクトディレクトリーにコピーした展開したawsディレクトリーへの絶対パスに置き換えます。接続ファイルの例を以下に示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f conn.php | echo $?
$ php -f conn.php | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに正しく値を指定した場合は、コマンドの出力は
0になります。
バケットの作成
新しいファイルを作成します。
vim create_bucket.php
vim create_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f create_bucket.php
php -f create_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
所有するバケットの一覧表示
新しいファイルを作成します。
vim list_owned_buckets.php
vim list_owned_buckets.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f list_owned_buckets.php
php -f list_owned_buckets.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
my-new-bucket3 2016-01-21 10:33:19 UTC
my-new-bucket3 2016-01-21 10:33:19 UTCCopy to Clipboard Copied! Toggle word wrap Toggle overflow
オブジェクトの作成
ソースファイル
hello.txtを作成します。echo "Hello World!" > hello.txt
echo "Hello World!" > hello.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい php ファイルを作成します。
vim create_object.php
vim create_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f create_object.php
php -f create_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、バケット
my-new-bucket3でオブジェクトhello.txtが作成されます。
バケットの内容の一覧表示
新しいファイルを作成します。
vim list_bucket_content.php
vim list_bucket_content.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f list_bucket_content.php
php -f list_bucket_content.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
hello.txt 12 Fri, 22 Jan 2016 15:54:52 GMT
hello.txt 12 Fri, 22 Jan 2016 15:54:52 GMTCopy to Clipboard Copied! Toggle word wrap Toggle overflow
空のバケットの削除
新しいファイルを作成します。
vim del_empty_bucket.php
vim del_empty_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f del_empty_bucket.php | echo $?
php -f del_empty_bucket.php | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが正常に削除されると、コマンドは
0を出力として返します。注記create_bucket.phpファイルを編集し、my-new-bucket4、my-new-bucket5などの空のバケットを作成し、空のバケットの削除を試みる前に、del_empty_bucket.phpファイルを適宜編集します。
空でないバケットの削除(強制的に実行)
現在、空でないバケットの削除は、php 2 以降のバージョンの aws-sdk ではサポートされていません。
オブジェクトの削除
新しいファイルを作成します。
vim delete_object.php
vim delete_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f delete_object.php
php -f delete_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、オブジェクト
hello.txtが削除されます。