2015年4月5日日曜日

fuelphpでS3に簡単にファイルをアップする仕組みを作る的なお話

  • このエントリーをはてなブックマークに追加

fuelphpでS3との連携をしたいという場合は、AWS SDKを使えば簡単に出来たりはするけども、
そもそも使うのはS3だけだしな…とかっていう人にとってはSDKの導入は中々に面倒だったりする。
そこで今回はこのパッケージを入れれば簡単に出来るよっていうのがあるのでその紹介をば。

fuel-s3
こちらはpackageなのだが、S3の機能だけうまく取り出している。
ちなみにREST系のpackageなので、わざわざ変な事をしていなくてシンプルなのがよかったり。

なのでこれを使ってアップロードされたファイルをS3上に保存する方法はこちら。

Upload::process(array(
  'path' => DOCROOT.'tmp',
  'file_chmod' => 0666,
  'create_path' => true,
  'randomize' => true,
  "ext_whitelist" => array("jpg","png","gif")
));

if(Upload::is_valid()){
  $files = \Upload::get_files();

  /* upload s3 */
  $file = \S3::input_file($files[0]['file']);
  $save_name = Str::random('unique');
  $ext = $files[0]['extension'];
  \S3::put_object($file,'s3bucket',"bucket_folder/{$save_name}.{$ext}","public-read");
}
else{
  /* error */
}
ってな感じですごく簡単に出来る。
また一時的にサーバー上に保存などをしてということもしないので、ゴミも溜まることなくというまさに便利。
それにAWS SDKみたいにuseとかそういう設定が面倒な人にとってはすごく便利。

もちろんdevelopmentとproductionで設定を分けるってことも出来るのでオススメの一品。

Adsense