AWS SDK for PHPの使用はComposerが推奨されていますが、zipを落として使用したい場合があるかと思います。そんな時用のメモ。
環境
- FuelPHP
- AWS SDK for PHP v2
- PHP5.3
AWS SDK for PHPの最新バージョンはv3です。v3ではPHP 5.5以上が必要になります。
AWS SDK for PHP ダウンロード
公式サイトからzipファイルを落としてきます。
v3: https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html
v2: https://aws.amazon.com/jp/releasenotes/release-aws-sdk-for-php-2-4-2/
解凍
zipファイルを落としたら解凍してサーバに設置します。設置場所はどこでも良いです。FuelPHPを使用している場合はpublic_html/fuel/vendor/あたりでしょうか。
ミニマムテストコード
sample.gifを作成してpublic_html直下に置いています。sample.gifがS3のtest/以下にアップロードされていれば成功です。なお、成功しても失敗しても画面に何も表示されません。
public_html/fuel/app/classes/controller/s3.php
<?php
require('fuel/vendor/aws/aws-autoloader.php');
use Aws\S3\S3Client;
use Aws\Common\Enum\Region;
class Controller_S3 extends Controller {
public function action_index() {
// アクセスキー
$key = 'XXXXXXXXXXXXXXXXXXXXXX';
//シークレットアクセスキー
$secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
// s3のリージョン(日本の場合)
$region = Region::TOKYO;
// バケット名
$bucket = 'test';
// アップロードしたいファイルのパスとファイル名
$input_file_path = DOCROOT.'sample.gif';
// アップロード先 (S3) のパスとファイル名
$output_file_path = 'sample.gif';
$s3 = S3Client::factory(array(
'key' => $key,
'secret' => $secret,
'region' => $region
));
// アップロード
$s3->putObject(array(
'Bucket' =>$bucket,
'Key' => $output_file_path,
'Body' => file_get_contents($input_file_path)
));
}
}
参考
- fuelphpからs3(aws)を利用する方法メモ
http://kimagureneet.hatenablog.com/entry/2015/04/29/011828