2011年2月4日金曜日

"AWS SDK for PHP"でS3にファイルアップロード

スズキです。

"AWS SDK for PHP"でS3にファイルアップロードしてみました。
http://aws.amazon.com/sdkforphp/

ライプラリをダウンロードして展開すると、
下記のようにファイルやディレクトリが配置されます。

$ ls -1
--------
config-sample.inc.php
lib
sdk.class.php
services
utilities
--------

そして、"config-sample.inc.php"を"config.inc.php"にコピーして、
アクセスキーとシークレットキーを設定します。

$ cp config-sample.inc.php config.inc.php
$ vi config.inc.php
--------
...
define('AWS_KEY', 'KKKKKKKK');
...
define('AWS_SECRET_KEY', 'SSSSSSSS');
...
--------

最後に、以下のようにPHPスクリプトを実行すると、
S3へファイルアップロードできます。

--------【s3.php】--------
<?php

// ライブラリの読み込み
require_once("./sdk.class.php");

// AmazonS3クラスをインスタンス化
$s3 = new AmazonS3();

// リージョンの設定(下記が設定できます)
// AmazonS3::REGION_US_E1
// AmazonS3::REGION_US_W1
// AmazonS3::REGION_EU_W1
// AmazonS3::REGION_APAC_SE1
$s3->set_region(AmazonS3::REGION_US_E1);

// "cdn.suz-lab.com"バケットに"test.txt"をアップロード
$response = $s3->create_object("cdn.suz-lab.com", "test.txt", array(
"fileUpload" => "test.txt", // アップロードするファイルを指定
"acl" => AmazonS3::ACL_PUBLIC,
"contentType" => "text/plain"
));
// ※ aclは下記が設定できます。
// AmazonS3::ACL_PRIVATE
// AmazonS3::ACL_PUBLIC
// AmazonS3::ACL_OPEN
// AmazonS3::ACL_AUTH_READ
// AmazonS3::ACL_OWNER_READ
// AmazonS3::ACL_OWNER_FULL_CONTROL

// 結果の表示
var_dump($response);
?>
--------
※上記ファイルと同一ディレクトリにconfig.inc.phpがあることが前提です。

他にもいろいろとパラメータを設定できるので、詳しくは下記を参照してください。
http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#m=AmazonS3/create_object

ELB関係もPHPで試さないと...
--------
http://www.suz-lab.com

0 コメント: