UNIX的なアレ

UNIX的なこととかいろいろ

S3 Stream Wrapperがすごく便利

みんな大好きAWSですが、S3 Stream Wrapperがすごく便利だったので紹介します。

S3 Stream Wrapperって?

PHP: サポートするプロトコル/ラッパー - Manual
PHPではStreamWraperという仕組みがあって、ファイルへのアクセスをいい感じにラップしてくれたりします。file_get_contentsなんかではおなじみですが、HTTPとかローカルファイルシステムとか気軽にアクセスすることができますね。
S3 Steram Wrapperを使うと、他のファイルシステムと同様にS3へアクセスすることができます。

利用方法

AWS SDK for PHP | AWS
まずは上記からSDKをダウンロードしましょう。ダウンロードしたら、展開して適当なファイル名に変更してください。あとは下記のパスにあるドキュメントに書いてあるので、すぐわかると思います。
/path/to/sdk/_docs/STREAMWRAPPER_README.html

実際に試してみました。まずは、認証まわりの設定をします。AWSの認証情報が必要なのでコンソールから引っ張ってきてください。

<?php if (!class_exists('CFRuntime')) die('No direct access allowed.');
CFCredentials::set(array(
	'development' => array(
		'key' => 'development-key',
		'secret' => 'development-secret',
		'default_cache_config' => '',
		'certificate_authority' => false
	),
	// Specify a default credential set to use if there are more than one.
	'@default' => 'development'
));

あとはアップロードするためのコードです。これだけでOK!

<?php
require_once 'aws/sdk.class.php';

$s3 = new AmazonS3();
$s3->register_stream_wrapper();
$file = 's3://your_bucket_name/foobar.' . time() . 'txt';

if (file_put_contents($file, time())){
  echo "ok";
}
var_dump(file_get_contents($file));
?>

すごく簡単ですね!あとは実行するだけです。

株式会社nanapiではエンジニアを募集しています!

http://nanapi.co.jp/recruit
一緒にがんばりましょう!