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

参考