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のバケット一覧取得まで確認しました。