Check out https://github.com/kaliber-scala/play-s3 repo and update play version from 2.6 to 2.7 in build.sbt (need to add commons-codec dependency as well). Modify build.sbt as follows:
val playVersion = "2.7.0"
lazy val root = (project in file("."))
.settings(
name := "play-s3",
organization := "net.kaliber",
scalaVersion := "2.12.2",
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-ws" % playVersion % "provided",
"com.typesafe.play" %% "play-test" % playVersion % "test",
"com.typesafe.play" %% "play-specs2" % playVersion % "test",
"com.typesafe.play" %% "play-ahc-ws" % playVersion % "test",
"com.typesafe.play" %% "play-logback" % playVersion % "test",
"commons-codec" % "commons-codec" % "1.11" % "provided"
)
)
.settings(bintraySettings: _*)
Also add the following lines to src/main/scala/fly/play/aws/AwsRequestHolder.scala:
def withUrl(url: String): AwsRequestHolder =
copy(wrappedRequest = wrappedRequest withUrl url)
Create test/conf/application.conf (play conf + s3 test bucket location)
And run sbt clean compile test and wait for the aws signature mismatches on the s3 upload tests with signed payload.
Then modify build.sbt as follows:
val playVersion = "2.7.0"
lazy val root = (project in file("."))
.settings(
name := "play-s3",
organization := "net.kaliber",
scalaVersion := "2.12.2",
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-ws" % playVersion % "provided",
"com.typesafe.play" %% "play-test" % playVersion % "test",
"com.typesafe.play" %% "play-specs2" % playVersion % "test",
"com.typesafe.play" %% "play-ahc-ws" % "2.6.21" % "test",
"com.typesafe.play" %% "play-logback" % playVersion % "test",
"commons-codec" % "commons-codec" % "1.11" % "provided"
)
)
.settings(bintraySettings: _*)
And run sbt clean compile test again and the tests will pass.
What did change wrt submitting request (signatures) in play-ahc-ws 2.7.0 (or in the shaded-asynchttpclient-2.0.1 dependency) ?
Thanks