AWS SDK for PHP 2のインストール 〜 S3のバケット一覧取得まで
やりたいこと。
S3へPHPからアクセスしたい。
AWS SDK for PHP 2のインストール
composerをインストールします。 composerはruby bundlerのようなものだそうです。
curl -s http://getcomposer.org/installer | php
上記コマンドを実行すると、composer.pharがカレントディレクトリに作成されます。
次にcomposer.jsonを作成いします。(パッケージの記述)
vi composer.json
composer.jsonの内容
{ "require": { "aws/aws-sdk-php": "*" } }
install実行(composer.jsonに記載されたパッケージのインストール)
php composer.phar install
実行すると標準出力に以下のメッセージが。
Loading composer repositories with package information Installing dependencies (including require-dev) - Installing symfony/event-dispatcher (v2.3.0) Downloading: 100% - Installing guzzle/guzzle (v3.6.0) Downloading: 100% - Installing aws/aws-sdk-php (2.3.4) Downloading: 100% symfony/event-dispatcher suggests installing symfony/dependency-injection () symfony/event-dispatcher suggests installing symfony/http-kernel () aws/aws-sdk-php suggests installing doctrine/cache (Adds support for caching of credentials and responses) aws/aws-sdk-php suggests installing ext-apc (Allows service description opcode caching, request and response caching, and credentials caching) aws/aws-sdk-php suggests installing monolog/monolog (Adds support for logging HTTP requests and responses) aws/aws-sdk-php suggests installing symfony/yaml (Eases the ability to write manifests for creating jobs in AWS Import/Export) Writing lock file Generating autoload files
lsするとこんな感じです。
[mitsugeek@example ~]$ ls composer.json composer.lock composer.phar vendor
vendorディレクトリとcomposer.lock が作成されました。
以上で【AWS SDK for PHP 2】のインストール完了です。
ひきつづきS3へのアクセスを行いたいと思います。
S3のバケット取得プログラム
vi s3_listBuckets_example.php
<?php require_once("/var/www/html/dev/vendor/autoload.php"); use Aws\S3\S3Client; $config = array( 'key' => 'keyを記載', 'secret' => 'secretを記載' ); $s3 = S3Client::factory($config); $buckets= $s3->listBuckets(); foreach ($buckets as $bucket) { var_dump($bucket); }
keyとsecretは内緒です。
上記プログラムを実行します。
php s3_listBuckets_example.php
結果
array(2) { ["ID"]=> string(64) "XXXXXXXXXXXXXXXXXXXX" ["DisplayName"]=> string(8) "mitsugeek" } array(1) { [0]=> array(2) { ["Name"]=> string(13) "mitsugeek.net" ["CreationDate"]=> string(24) "2013-03-28T13:58:27.000Z" } } string(16) "XXXXXXXXX"
以上で、S3のバケット一覧取得まで確認しました。