Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

playframework を Elastic beanstalkにデプロイ出来るようにする

やっとうまく動くようになった

qiita.com

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化

ソースコードのお掃除

qiita.com

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

Scala Future メモ

Future メモ

Seq[Future[A]] という非常に扱いづらい形の時に Future.sequence を使ってやると Future[Seq[A]] にできる

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

Scala逆引きレシピ

Scala逆引きレシピ

AWS S3 uploadでドハマリしたお話

使用ライブラリ

事象

1ファイル目のファイルアップロードは成功するが、2ファイル目以降でMD5が合わないと言われてアップロードに失敗する。 ログを出力して確認してみると、2ファイル目以降のMD5の値がすべて同じ値になっている。

実装

foreachで回してファイルをアップロードする処理を書いていたが、MD5はライブラリ側で計算して出してくれるとあったので特別なにかを設定するようなことはしていない。

val objectMetadata = createObjectMetadata()
uploadTargetfiles.foreach(file => {
  val putObjectRequest = new PutObjectRequest(bucket.name, file.getName, file) {
    this.setMetadata(objectMetadata)
  }

  client.putObject(putObjectRequest)
})
private def createObjectMetadata(): ObjectMetadata = {
    new ObjectMetadata {
      // ゴニョゴニョ
    }
  }

解決方法

val objectMetadata = createObjectMetadata() をforeachの中に入れた。

原因

foreachの外でobjectMetaDataの定義をしていたのが原因っぽい が、よくわからない

誰かおしえてください。

A binding to play.api.db.DBApi was already configured

A binding to play.api.db.DBApi was already configured

Slickをしようするために

build.sbtに

  "com.typesafe.play" %% "play-slick" % "1.0.1",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.0.1"

の記述をしたら表題のようなエラーがでた。

対応は

デフォルトで入っているjdbcの記載を消してやる

libraryDependencies ++= Seq(
//  jdbc,
  cache,
  ws,
  specs2 % Test,

https://groups.google.com/forum/#!topic/play-framework/NOFbfx13fio

PlaySlickFAQ